You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ta...@apache.org on 2021/05/19 15:49:11 UTC

[tika] branch TIKA-3347 updated (473acc1 -> 218d12d)

This is an automated email from the ASF dual-hosted git repository.

tallison pushed a change to branch TIKA-3347
in repository https://gitbox.apache.org/repos/asf/tika.git.


    from 473acc1  Few more required updates...
     add b695988  TIKA-3355 -- include dependencies in test-jar
     add 54c91f4  Fix build on Windows... sorry :(
     add d2340c7  Fix up exception handling for invalid config (#426)
     add 0d6199b  Merge remote-tracking branch 'origin/main' into main
     add 601cfff  TIKA-3359 -- extract rich media from PDFs
     add e995fe2  TIKA-3359 -- extract rich media from PDFs -- broaded the search for /EF
     add cf2febc  TIKA-3362 -- enable configuration of content type, writelimit and max embedded resources for async, FetchEmitTuple
     add b35b168  TIKA-3312 -- upgrade to log4j2 throughout
     add f53c527  TIKA-3324 -- update pom files to index 2 spaces (we had some differences); add checkstyle enforcement for tika-batch, tika-eval, tika-example, tika-langdetect, tika-serialization
     add cacde72  clean up dependencies in tika-server, upgrade cxf and jetty
     add be8817e  checkstyle fixups
     add 6569539  Update Tika site urls to https (in safe places)
     add 08793d3  Use https for xsd maven schema locations
     add 60c0aae  TIKA-3373 Add the *.yml extension for YAML, which is commonly used, along with aliases for popular alternate mimetypes for it
     add 05709ee  TIKA-3370 -- refactor AsyncProcessor
     add fa08843  TIKA-2787 -- make WriteLimitReachedException public for Tika 2.x
     add 93abeaf  TIKA-3371 -- add id to fetchtuple
     add f8ed1d2  TIKA-3377 -- avoid loading the fetchers, emitters and other pipes components in TikaConfig as default.  Still more cleanup necessary...
     add 07aa478  TIKA-3374 -- apply charset detection for archive entry name (#433)
     add fbac00b  TIKA-3374 -- fix up to encoding detection in package parser
     add 97d85a0  fix logic in digest key matcher in ExtractComparer
     add 9ac7e75  TIKA-3376 -- improve write limit reached handling in new /tika json output
     add 3420a79  Merge remote-tracking branch 'origin/main' into main
     add e6f360e  TIKA-3374 -- allow users to turn off charset detection
     add 5cf12bb  TIKA-3378 -- mv tika-langdetect-commons to tika-langdetect-test-commons
     add 7ea14be  TIKA-3372 -- fix writelimit in PDFs
     add 1aa1a2c  fix for TIKA-3329 contributed by Thamme Gowda
     add 9068145  Register RTGTranslator service; handle exception
     add 21bdfc7  Merge branch 'TIKA-3329' of https://github.com/thammegowda/tika into TIKA-3329
     add c147b2e  Fix checkstyle unused imports.
     add d0e3230  Forbidden API error fixes.
     add 7e8d64d  TIKA-3386 allow a times parameter in MockParser
     add 6d70871  [TIKA-3383] Add .asf.yaml files to all Tika repositories
     add 0f942ec  Merge pull request #434 from lewismc/TIKA-3383
     add b97ae8a  Created basic structure
     add 62783b2  pom build fix
     add bf4f1fe  Copied function definitions over from translate and changed class variable types
     add a608dfa  validSourceLanguages for StartStreamTranscription added
     add e8e0a06  validSourceLanguages for StartStreamTranscription added
     add 04cff77  Check that input sourceLanguage is valid for Amazon's StartStreamTranscription
     add c60c937  Added AmazonTranscribeGuessLanguageTest
     add 7ddbff2  Fixing Merge Conflicts
     add e01d4a9  overwrote Interface
     add 58461cf  Merge branch 'TIKA-94' of https://github.com/rohan2810/tika into TIKA-94
     add 5321b69  changed exception strnig throw
     add 068120f  reduced transcribe runtime by implementing HashSet
     add 205faa1  Changed variable reference to method call
     add ffbaad5  Added javadoc desription
     add 2b82324  Instantiated bucketname, clientID, and secret in contructor
     add 931b00f  amazon dependencies added to header
     add 0160246  added amazonaws dependency
     add e3e94c2  Merge branch 'TIKA-94' of https://github.com/rohan2810/tika into TIKA-94
     add 65acd7e  Completed AWS audio transcribe. Lewis can you review?
     add e025d66  Merge
     add ced2ba2  Adding AmazonTranscribeGuessLaunguageTest
     add 0600a4b  Updating AmazonTranscribeTest
     add d98aebf  > removed aws from core
     add c53f73c  Package Name refactoring, more generic interface, changes in implementation
     add 04ce661  Merge branch 'TIKA-94' of https://github.com/rohan2810/tika into TIKA-94
     add 0333578  uploadFileToBucket is now a private method. key -> jobName TODO add documentation for the methods
     add 79030a8  Merge branch 'TIKA-94' of https://github.com/rohan2810/tika into TIKA-94
     add aa76fc7  Updated AmazonTranscribeGuessLanguageTest to mesh with AmazonTranscribe interface
     add 60d131d  Pushed changes to interface and make it AWS independent
     add ec5de38  Changed jobName from filename to auto generated UUID
     add dfd21f3  should not be creating new jobname in Upload file to bucket
     add a2c2c61  Updated AmazonTranscribeGuessLanguageTest to call getTranscriptResult
     add 17f2d10  fix for TIKA-94 contributed by phantuanminh: Rename package (Fix typo). Add simple test and test files
     add 58784b7  Resolved Merge Conflicts with other test files
     add 6921ffb  Added usage of test recourse files in AmazonTranscribeGuessLanguageTest
     add ad6ac1b  added documentation. Made the interface AWS independent some other small fixes.
     add 598edd6  no need for support of overhead conversion of mp4 to mp3
     add 6e07c57  Revert "no need for support of overhead conversion of mp4 to mp3"
     add cae79ac  few fixes based off comments
     add 3688d2d  Added de-DE, en-AU, en-GB, en-US, it-IT, ja-JP, ko-KR, pt-BR audio samples to test resources
     add 0220d57  Added tests for new audio recourse files
     add c7763b7  Added documentation and mp4 file tests to AmazonTranscribeGuessLanguageTest
     add b7221e4  remove video
     add 7805990  remove video
     add 84f7de6  startTranscribe-> transcribe
     add 818be72  test refactoring
     add 927ce49  dependency fix
     add dc2f979  white spaces and fixes
     add fb1a86f  imports fix
     add 600d972  added some comments
     add b5be3be  added comments
     add 09ed087  Merge branch 'TIKA-94' of https://github.com/rohan2810/tika into TIKA-94
     add 9d2c986  Changed startTranscribe() to transcribe()
     add a568b13  comments
     add e8ff342  String -> InputStream
     add b2bcfd3  String -> InputStream TODO:Testing -> AWS & new changes testing.
     add aba21b8  Merge remote-tracking branch 'origin/TIKA-94' into TIKA-94
     add f27f864  Add documentation for tests, modify and merge test files
     add f3e284d  Merge branch 'TIKA-94' of https://github.com/rohan2810/tika into TIKA-94
     add f633e65  [TIKA-94] Speech-to-text transcription
     add 2d0f9e2  Merge pull request #406 from rohan2810/TIKA-94
     add edd9398  TIKA-3382 -- improve writelimit handling throughout various parsers
     add 0b9e0cf  Merge remote-tracking branch 'origin/main' into main
     add 9261fe2  fix for TIKA-3389 contributed by kamaci (#436)
     add b370d4f  TIKA-3370 -- add pipes processor and swap out /emit for /pipes
     add 324f2f2  fix for TIKA-3390 contributed by kamaci (#437)
     add 0fa9adc  TIKA-3391 refactor fetchiterators to pipes iterators
     add 47d54f6  TIKA-3393 -- refactor metadata filters in 2.x
     add 5c4c147  TIKA-3391 -- cleanup
     add cdb01c9  TIKA-3394 -- integrate pipes into tika-app
     add 0277620  fix for TIKA-3395 contributed by kamaci (#438)
     add c0331e3  fix for TIKA-3398 contributed by kamaci (#439)
     add dc571dd  TIKA-3396 -- rename parser modules
     add 03b6baf  TIKA-3392 -- allow insecure parsing in MimeTypesReader; log a warning
     add e687ac9  TIKA-3306 -- add timeout in PipesClient
     add 134bbf8  Add more solr support to tika pipes (#445)
     add 9be81d1  TIKA-3317 -- small cleanups
     add e5bd0ab  fix for TIKA-3402 contributed by kamaci (#443)
     add 633e984  fix for TIKA-3401 contributed by kamaci (#442)
     add 03a02b7  fix for TIKA-3399 contributed by kamaci (#440)
     add 263d22b  TIKA-3317 -- small cleanups
     add 592dea4  TIKA-3405 -- upgrade isoparser
     add d73ca6a  TIKA-3403 Create example for Transcription (#444)
     add 77195aa  fix unit test after upgrade to isoparser
     add f688726  fix unit test after upgrade to isoparser -- checkstyle
     add 93d2211  TIKA-3384 -- convert transcribe to a traditional parser
     add 2e520e8  Revert "TIKA-3384 -- convert transcribe to a traditional parser"
     add 2c951a3  TIKA-3384 -- convert transcribe to a traditional parser
     add ee5a82f  Revert "TIKA-3384 -- convert transcribe to a traditional parser"
     add 652d1fc  TIKA-3384 -- convert transcribe to a traditional parser, step 1; git mv
     add 4be6a50  TIKA-3384 -- convert transcribe to a traditional parser, step 2; make changes
     add 62703fb  clean up unit test after upgrade of isoparser/mp4parser
     add f3d361c  [TIKA-3357] Remove ambiguity in request handlers - main (#430)
     add 7b0055e  rat check and dependency updates in prep for 2.0.0-BETA release
     add d06df35  fix dependencies in langdetect
     add 874cc39  Update CHANGES.txt for 2.0.0-BETA release.
     add 54bc3d1  Merge remote-tracking branch 'origin/main' into main
     add 5b74cdf  fix dependencies in tika-example
     add 9e8cbe2  [maven-release-plugin] prepare release tika-2.0.0-BETA
     add 57c7a68  [maven-release-plugin] prepare for next development iteration
     new 218d12d  Merge remote-tracking branch 'origin/main' into TIKA-3347

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .asf.yaml                                          |   28 +
 .gitattributes                                     |   10 +-
 .github/pull_request_template.md                   |   19 +
 CHANGES.txt                                        |   12 +-
 overview.html                                      |    4 +-
 pom.xml                                            |   44 +-
 tika-app/pom.xml                                   |   23 +-
 .../batch/DigestingAutoDetectParserFactory.java    |    3 +-
 .../apache/tika/cli/BatchCommandLineBuilder.java   |   10 +-
 .../src/main/java/org/apache/tika/cli/TikaCLI.java |  113 +-
 .../apache/tika/gui/ParsingTransferHandler.java    |    2 +-
 .../src/main/java/org/apache/tika/gui/TikaGUI.java |   22 +-
 tika-app/src/main/resources/log4j.properties       |   24 -
 tika-app/src/main/resources/log4j2.properties      |   28 +
 .../main/resources/log4j2_batch_process.properties |   29 +
 .../main/resources/log4j_batch_process.properties  |   24 -
 .../tika/cli/TikaCLIBatchIntegrationTest.java      |   12 +-
 .../test/java/org/apache/tika/cli/TikaCLITest.java |   67 +-
 .../tika/extractor/TestEmbeddedDocumentUtil.java   |    1 -
 .../resources/log4j2_batch_process_test.properties |   28 +
 .../resources/log4j_batch_process_test.properties  |   24 -
 tika-batch/pom.xml                                 |   52 +-
 .../apache/tika/batch/AutoDetectParserFactory.java |   11 +-
 .../org/apache/tika/batch/BatchNoRestartError.java |    5 +-
 .../java/org/apache/tika/batch/BatchProcess.java   |  196 +--
 .../apache/tika/batch/BatchProcessDriverCLI.java   |   91 +-
 .../org/apache/tika/batch/ConsumersManager.java    |   12 +-
 .../tika/batch/FileConsumerFutureResult.java       |   33 +-
 .../java/org/apache/tika/batch/FileResource.java   |   76 +-
 .../apache/tika/batch/FileResourceConsumer.java    |  143 +-
 .../org/apache/tika/batch/FileResourceCrawler.java |   46 +-
 .../batch/FileResourceCrawlerFutureResult.java     |   33 +-
 .../java/org/apache/tika/batch/FileStarted.java    |    8 +-
 .../tika/batch/IFileProcessorFutureResult.java     |    5 +-
 .../java/org/apache/tika/batch/Interrupter.java    |   38 +-
 .../org/apache/tika/batch/OutputStreamFactory.java |   11 +-
 .../tika/batch/ParallelFileProcessingResult.java   |   27 +-
 .../java/org/apache/tika/batch/ParserFactory.java  |    4 +-
 .../org/apache/tika/batch/PoisonFileResource.java  |   51 +-
 .../java/org/apache/tika/batch/StatusReporter.java |   58 +-
 .../tika/batch/StatusReporterFutureResult.java     |    2 +-
 .../batch/builders/AbstractConsumersBuilder.java   |   24 +-
 .../tika/batch/builders/BatchProcessBuilder.java   |  152 +-
 .../batch/builders/CommandLineParserBuilder.java   |   18 +-
 .../DefaultContentHandlerFactoryBuilder.java       |   10 +-
 .../builders/IContentHandlerFactoryBuilder.java    |    5 +-
 .../tika/batch/builders/ICrawlerBuilder.java       |   17 +-
 .../tika/batch/builders/IParserFactoryBuilder.java |    3 +-
 .../tika/batch/builders/InterrupterBuilder.java    |    6 +-
 .../builders/ObjectFromDOMAndQueueBuilder.java     |    8 +-
 .../tika/batch/builders/ObjectFromDOMBuilder.java  |    8 +-
 .../tika/batch/builders/ParserFactoryBuilder.java  |    7 +-
 .../tika/batch/builders/ReporterBuilder.java       |    7 +-
 .../batch/builders/SimpleLogReporterBuilder.java   |    9 +-
 .../tika/batch/builders/StatusReporterBuilder.java |   10 +-
 .../apache/tika/batch/fs/AbstractFSConsumer.java   |   11 +-
 .../apache/tika/batch/fs/BasicTikaFSConsumer.java  |   27 +-
 .../apache/tika/batch/fs/FSBatchProcessCLI.java    |   58 +-
 .../apache/tika/batch/fs/FSConsumersManager.java   |    4 +-
 .../apache/tika/batch/fs/FSDirectoryCrawler.java   |   43 +-
 .../apache/tika/batch/fs/FSDocumentSelector.java   |    7 +-
 .../org/apache/tika/batch/fs/FSFileResource.java   |   14 +-
 .../org/apache/tika/batch/fs/FSListCrawler.java    |   27 +-
 .../tika/batch/fs/FSOutputStreamFactory.java       |   30 +-
 .../org/apache/tika/batch/fs/FSProperties.java     |    3 +-
 .../main/java/org/apache/tika/batch/fs/FSUtil.java |   39 +-
 .../batch/fs/RecursiveParserWrapperFSConsumer.java |   32 +-
 .../tika/batch/fs/StreamOutRPWFSConsumer.java      |   46 +-
 .../fs/builders/BasicTikaFSConsumersBuilder.java   |  100 +-
 .../tika/batch/fs/builders/FSCrawlerBuilder.java   |   37 +-
 .../batch/fs/strawman/StrawManTikaAppDriver.java   |  229 ++-
 .../java/org/apache/tika/util/ClassLoaderUtil.java |   13 +-
 .../org/apache/tika/util/DurationFormatUtils.java  |    3 +-
 .../main/java/org/apache/tika/util/PropsUtil.java  |   19 +-
 .../main/java/org/apache/tika/util/XMLDOMUtil.java |   32 +-
 tika-batch/src/main/java/overview.html             |   38 +-
 .../tika/batch/CommandLineParserBuilderTest.java   |    7 +-
 .../RecursiveParserWrapperFSConsumerTest.java      |   40 +-
 .../org/apache/tika/batch/fs/BatchDriverTest.java  |   19 +-
 .../org/apache/tika/batch/fs/BatchProcessTest.java |   71 +-
 .../org/apache/tika/batch/fs/FSBatchTestBase.java  |  132 +-
 .../apache/tika/batch/fs/FSFileResourceTest.java   |    2 +-
 .../apache/tika/batch/fs/HandlerBuilderTest.java   |    6 +-
 .../tika/batch/fs/OutputStreamFactoryTest.java     |    6 +-
 .../apache/tika/batch/fs/StringStreamGobbler.java  |   55 +-
 .../tika/batch/fs/strawman/StrawmanTest.java       |    5 +-
 .../tika/batch/mock/MockConsumersBuilder.java      |    7 +-
 .../tika/batch/mock/MockConsumersManager.java      |   11 +-
 .../apache/tika/parser/mock/MockParserFactory.java |    3 +-
 tika-batch/src/test/resources/log4j-on.properties  |   27 -
 tika-batch/src/test/resources/log4j.properties     |   25 -
 tika-batch/src/test/resources/log4j2-on.properties |   29 +
 tika-batch/src/test/resources/log4j2.properties    |   28 +
 .../src/test/resources/log4j2_process.properties   |   28 +
 .../src/test/resources/log4j_process.properties    |   27 -
 tika-bundles/pom.xml                               |   28 +-
 tika-bundles/tika-bundle-classic/pom.xml           |  503 ------
 .../test/java/org/apache/tika/bundle/BundleIT.java |  361 ----
 .../src/test/resources/log4j.properties            |   24 -
 tika-bundles/tika-bundle-classic/test-bundles.xml  |   48 -
 tika-bundles/tika-bundle-standard/pom.xml          |  489 ++++++
 .../src/main/appended-resources/META-INF/LICENSE   |    0
 .../src/main/resources/META-INF/MANIFEST.MF        |    0
 .../test/java/org/apache/tika/bundle/BundleIT.java |  361 ++++
 .../src/test}/resources/log4j.properties           |    0
 .../src/test/resources}/test-documents.zip         |  Bin
 .../src/test/resources}/testOCR.jpg                |  Bin
 .../src/test/resources}/testPPT.pptx               |  Bin
 tika-bundles/tika-bundle-standard/test-bundles.xml |   48 +
 tika-core/pom.xml                                  |  484 +++---
 .../main/assembly/test-jar-with-dependencies.xml   |   38 +
 tika-core/src/main/java/org/apache/tika/Tika.java  |    3 +-
 .../tika/concurrent/SimpleThreadPoolExecutor.java  |   11 +-
 .../java/org/apache/tika/config/ConfigBase.java    |  438 +++++
 .../main/java/org/apache/tika/config/Param.java    |    2 +-
 .../java/org/apache/tika/config/ServiceLoader.java |   17 +-
 .../java/org/apache/tika/config/TikaConfig.java    |  398 +----
 .../org/apache/tika/detect/CompositeDetector.java  |    2 +-
 .../apache/tika/detect/FileCommandDetector.java    |    4 +-
 .../java/org/apache/tika/detect/MagicDetector.java |   58 +-
 .../org/apache/tika/embedder/ExternalEmbedder.java |   33 +-
 .../apache/tika/exception/RuntimeSAXException.java |   30 +
 .../apache/tika/exception/WriteLimitReached.java   |   22 -
 .../tika/exception/WriteLimitReachedException.java |   83 +
 .../tika/extractor/EmbeddedDocumentUtil.java       |    4 +-
 .../org/apache/tika/fork/ClassLoaderProxy.java     |    4 +-
 .../apache/tika/fork/MemoryURLStreamHandler.java   |    4 +-
 .../main/java/org/apache/tika/io/EndianUtils.java  |   24 +-
 .../java/org/apache/tika/io/FilenameUtils.java     |    2 +-
 .../org/apache/tika/io/TemporaryResources.java     |   16 +-
 .../java/org/apache/tika/metadata/Metadata.java    |    2 +-
 .../java/org/apache/tika/metadata/Property.java    |    6 +-
 .../metadata/filter/ClearByMimeMetadataFilter.java |    3 +-
 .../metadata/filter/CompositeMetadataFilter.java   |    2 +-
 .../filter/ExcludeFieldMetadataFilter.java         |    2 +-
 .../metadata/filter/FieldNameMappingFilter.java    |   41 +-
 .../filter/IncludeFieldMetadataFilter.java         |    2 +-
 .../tika/metadata/filter/MetadataFilter.java       |   31 +-
 .../apache/tika/metadata/filter/NoOpFilter.java    |    2 +-
 .../main/java/org/apache/tika/mime/MediaType.java  |   12 +-
 .../org/apache/tika/mime/MediaTypeRegistry.java    |    6 +-
 .../main/java/org/apache/tika/mime/MimeType.java   |    8 +-
 .../main/java/org/apache/tika/mime/MimeTypes.java  |    8 +-
 .../org/apache/tika/mime/MimeTypesFactory.java     |    2 +-
 .../java/org/apache/tika/mime/MimeTypesReader.java |   15 +-
 .../main/java/org/apache/tika/mime/Patterns.java   |    6 +-
 .../org/apache/tika/parser/CompositeParser.java    |   14 +-
 .../java/org/apache/tika/parser/DefaultParser.java |    2 +-
 .../java/org/apache/tika/parser/ParseContext.java  |    6 +-
 .../org/apache/tika/parser/ParserDecorator.java    |    2 +-
 .../java/org/apache/tika/parser/ParsingReader.java |   23 +-
 .../apache/tika/parser/RecursiveParserWrapper.java |   49 +-
 .../tika/parser/external/ExternalParser.java       |  104 +-
 .../external/ExternalParsersConfigReader.java      |   35 +-
 .../parser/external/ExternalParsersFactory.java    |    2 +-
 .../java/org/apache/tika/pipes/FetchEmitTuple.java |  131 ++
 .../java/org/apache/tika/pipes/HandlerConfig.java  |   81 +
 .../java/org/apache/tika/pipes/PipesClient.java    |  356 ++++
 .../java/org/apache/tika/pipes/PipesConfig.java    |   54 +
 .../org/apache/tika/pipes/PipesConfigBase.java     |  100 ++
 .../java/org/apache/tika/pipes/PipesException.java |   27 +
 .../java/org/apache/tika/pipes/PipesParser.java    |   75 +
 .../java/org/apache/tika/pipes/PipesResult.java    |   80 +
 .../java/org/apache/tika/pipes/PipesServer.java    |  480 ++++++
 .../apache/tika/pipes/async/AsyncClientConfig.java |   34 +
 .../org/apache/tika/pipes/async/AsyncConfig.java   |  116 ++
 .../org/apache/tika/pipes/async/AsyncEmitter.java  |  143 ++
 .../apache/tika/pipes/async/AsyncProcessor.java    |  215 +++
 .../tika/pipes/async/OfferLargerThanQueueSize.java |   41 +
 .../apache/tika/pipes/emitter/AbstractEmitter.java |   17 -
 .../org/apache/tika/pipes/emitter/EmitData.java    |   23 +-
 .../org/apache/tika/pipes/emitter/EmitKey.java     |   15 +-
 .../apache/tika/pipes/emitter/EmitterManager.java  |   21 +-
 .../org/apache/tika/pipes/fetcher/FetchKey.java    |   16 +-
 .../apache/tika/pipes/fetcher/FetcherManager.java  |   22 +-
 .../tika/pipes/fetcher/FileSystemFetcher.java      |  108 --
 .../tika/pipes/fetcher/fs/FileSystemFetcher.java   |  109 ++
 .../pipes/fetchiterator/EmptyFetchIterator.java    |   29 -
 .../tika/pipes/fetchiterator/FetchEmitTuple.java   |  102 --
 .../tika/pipes/fetchiterator/FetchIterator.java    |  211 ---
 .../fetchiterator/FileSystemFetchIterator.java     |  126 --
 .../pipesiterator/FileSystemPipesIterator.java     |  127 ++
 .../tika/pipes/pipesiterator/PipesIterator.java    |  254 +++
 .../java/org/apache/tika/sax/CleanPhoneText.java   |    2 +-
 .../org/apache/tika/sax/DIFContentHandler.java     |   12 +-
 .../org/apache/tika/sax/LinkContentHandler.java    |    4 +-
 .../org/apache/tika/sax/SafeContentHandler.java    |   12 +-
 .../org/apache/tika/sax/SecureContentHandler.java  |    2 +-
 .../org/apache/tika/sax/StandardOrganizations.java |    5 +-
 .../java/org/apache/tika/sax/StandardsText.java    |    8 +-
 .../org/apache/tika/sax/ToHTMLContentHandler.java  |    2 +-
 .../org/apache/tika/sax/ToXMLContentHandler.java   |    4 +-
 .../apache/tika/sax/WriteOutContentHandler.java    |   63 +-
 .../org/apache/tika/sax/XHTMLContentHandler.java   |    2 +-
 .../tika/sax/xpath/MatchingContentHandler.java     |    2 +-
 .../org/apache/tika/sax/xpath/XPathParser.java     |    2 +-
 .../org/apache/tika/utils/AnnotationUtils.java     |   19 +-
 .../java/org/apache/tika/utils/CharsetUtils.java   |    7 +-
 .../java/org/apache/tika/utils/ParserUtils.java    |    2 +-
 .../java/org/apache/tika/utils/RegexUtils.java     |    2 +-
 .../org/apache/tika/utils/ServiceLoaderUtils.java  |    5 +-
 .../java/org/apache/tika/utils/XMLReaderUtils.java |   18 +-
 .../org/apache/tika/mime/tika-mimetypes.xml        |    7 +
 .../org/apache/tika/MultiThreadedTikaTest.java     |    4 +-
 .../apache/tika/ResourceLoggingClassLoader.java    |    9 +-
 .../org/apache/tika/TestRereadableInputStream.java |    2 +-
 .../src/test/java/org/apache/tika/TikaTest.java    |    8 +-
 .../apache/tika/config/AbstractTikaConfigTest.java |    9 +
 .../java/org/apache/tika/config/DummyExecutor.java |    2 +-
 .../org/apache/tika/config/MockConfigTest.java     |  118 ++
 .../tika/config/TikaConfigSerializerTest.java      |   10 +-
 .../org/apache/tika/config/TikaConfigTest.java     |   64 +-
 .../apache/tika/config/TikaPipesConfigTest.java    |   94 ++
 .../org/apache/tika/detect/MagicDetectorTest.java  |    2 +-
 .../org/apache/tika/detect/NameDetectorTest.java   |    2 +-
 .../java/org/apache/tika/fork/ForkParserTest.java  |   52 +-
 .../org/apache/tika/io/TikaInputStreamTest.java    |    7 +-
 .../org/apache/tika/metadata/TestMetadata.java     |    4 +-
 .../tika/metadata/filter/MockUpperCaseFilter.java  |    2 +-
 .../tika/metadata/filter/TestMetadataFilter.java   |   18 +-
 .../org/apache/tika/mime/CustomReaderTest.java     |    4 +-
 .../java/org/apache/tika/mime/MediaTypeTest.java   |   24 +-
 .../org/apache/tika/mime/MimeTypesReaderTest.java  |    6 +-
 .../apache/tika/parser/CompositeParserTest.java    |    9 +-
 .../apache/tika/parser/ParserDecoratorTest.java    |   12 +-
 .../org/apache/tika/parser/mock/MockParser.java    |   32 +-
 .../apache/tika/parser/mock/MockParserTest.java    |   11 +
 .../tika/parser/multiple/MultipleParserTest.java   |    4 +-
 .../tika/pipes/async/AsyncProcessorTest.java       |  152 ++
 .../org/apache/tika/pipes/async/MockEmitter.java   |   58 +
 .../org/apache/tika/pipes/async/MockFetcher.java   |   43 +
 .../org/apache/tika/pipes/emitter/MockEmitter.java |   31 -
 .../tika/pipes/fetcher/FileSystemFetcherTest.java  |   54 -
 .../pipes/fetcher/fs/FileSystemFetcherTest.java    |   54 +
 .../fetchiterator/FileSystemFetchIteratorTest.java |   69 -
 .../pipesiterator/FileSystemPipesIteratorTest.java |   71 +
 .../tika/sax/BasicContentHandlerFactoryTest.java   |    8 +-
 .../apache/tika/sax/XHTMLContentHandlerTest.java   |    2 +-
 .../org/apache/tika/utils/AnnotationUtilsTest.java |    4 +-
 .../apache/tika/utils/ServiceLoaderUtilsTest.java  |    3 +-
 .../org/apache/tika/config/TIKA-3137-exclude.xml   |    8 +-
 .../apache/tika/config/TIKA-3137-field-mapping.xml |   33 +
 .../apache/tika/config/TIKA-3137-include-uc.xml    |    8 +-
 .../org/apache/tika/config/TIKA-3137-include.xml   |    8 +-
 .../org/apache/tika/config/TIKA-3137-mimes-uc.xml  |    8 +-
 .../org/apache/tika/config/emitters-config.xml     |   24 +-
 .../tika/config/emitters-duplicate-config.xml      |    4 +-
 .../apache/tika/config/fetch-iterator-config.xml   |   27 -
 .../tika/config/fetch-iterator-multiple-config.xml |   33 -
 .../org/apache/tika/config/fetchers-config.xml     |   28 +-
 .../tika/config/fetchers-duplicate-config.xml      |   28 +-
 .../tika/config/fetchers-nobasepath-config.xml     |   26 +-
 .../apache/tika/config/fetchers-noname-config.xml  |   26 +-
 .../org/apache/tika/config/mockConfig.xml          |   35 +
 .../apache/tika/config/pipes-iterator-config.xml   |   25 +
 .../tika/config/pipes-iterator-multiple-config.xml |   31 +
 .../test/resources/test-documents/mock_times.xml   |   26 +
 tika-deployment/tika-snap-server/snapcraft.yaml    |    2 +-
 tika-dotnet/pom.xml                                |    6 +-
 tika-eval/pom.xml                                  |   66 +-
 tika-eval/tika-eval-app/pom.xml                    |  357 ++--
 .../org/apache/tika/eval/app/AbstractProfiler.java |  504 +++---
 .../org/apache/tika/eval/app/EvalFilePaths.java    |    9 +-
 .../org/apache/tika/eval/app/ExtractComparer.java  |  266 ++-
 .../org/apache/tika/eval/app/ExtractProfiler.java  |  221 ++-
 .../org/apache/tika/eval/app/FileProfiler.java     |  114 +-
 .../java/org/apache/tika/eval/app/TikaEvalCLI.java |  239 +--
 .../apache/tika/eval/app/XMLErrorLogUpdater.java   |   95 +-
 .../tika/eval/app/batch/DBConsumersManager.java    |   10 +-
 .../tika/eval/app/batch/EvalConsumerBuilder.java   |   36 +-
 .../tika/eval/app/batch/EvalConsumersBuilder.java  |    5 +-
 .../eval/app/batch/ExtractComparerBuilder.java     |   11 +-
 .../eval/app/batch/ExtractProfilerBuilder.java     |   11 +-
 .../tika/eval/app/batch/FileProfilerBuilder.java   |   16 +-
 .../apache/tika/eval/app/db/AbstractDBBuffer.java  |    3 +-
 .../java/org/apache/tika/eval/app/db/ColInfo.java  |   23 +-
 .../java/org/apache/tika/eval/app/db/Cols.java     |   77 +-
 .../java/org/apache/tika/eval/app/db/DBBuffer.java |    9 +-
 .../java/org/apache/tika/eval/app/db/H2Util.java   |   19 +-
 .../java/org/apache/tika/eval/app/db/JDBCUtil.java |  173 +-
 .../org/apache/tika/eval/app/db/MimeBuffer.java    |   28 +-
 .../org/apache/tika/eval/app/db/TableInfo.java     |    2 +-
 .../java/org/apache/tika/eval/app/io/DBWriter.java |   32 +-
 .../org/apache/tika/eval/app/io/ExtractReader.java |  118 +-
 .../tika/eval/app/io/ExtractReaderException.java   |   20 +-
 .../org/apache/tika/eval/app/io/IDBWriter.java     |    8 +-
 .../apache/tika/eval/app/io/XMLLogMsgHandler.java  |    3 +-
 .../org/apache/tika/eval/app/io/XMLLogReader.java  |   43 +-
 .../org/apache/tika/eval/app/reports/Report.java   |  116 +-
 .../tika/eval/app/reports/ResultsReporter.java     |  113 +-
 .../tika/eval/app/reports/XLSXHREFFormatter.java   |    8 +-
 .../tika/eval/app/reports/XLSXNumFormatter.java    |    7 +-
 .../tika/eval/app/reports/XSLXCellFormatter.java   |    6 +-
 .../eval/app/tools/BatchTopCommonTokenCounter.java |   11 +-
 .../eval/app/tools/CommonTokenOverlapCounter.java  |   14 +-
 .../apache/tika/eval/app/tools/LeipzigHelper.java  |    3 +-
 .../apache/tika/eval/app/tools/LeipzigSampler.java |    5 +-
 .../eval/app/tools/SlowCompositeReaderWrapper.java |   57 +-
 .../tika/eval/app/tools/TopCommonTokenCounter.java |  202 +--
 .../apache/tika/eval/app/tools/TrainTestSplit.java |   15 +-
 .../tika-eval-app/src/main/resources/db.properties |    1 +
 .../apache/tika/eval/app/AnalyzerManagerTest.java  |    6 +-
 .../apache/tika/eval/app/ComparerBatchTest.java    |   48 +-
 .../org/apache/tika/eval/app/MockDBWriter.java     |   14 +-
 .../apache/tika/eval/app/ProfilerBatchTest.java    |   60 +-
 .../apache/tika/eval/app/SimpleComparerTest.java   |  187 +--
 .../org/apache/tika/eval/app/TikaEvalCLITest.java  |  210 ++-
 .../tika/eval/app/db/AbstractBufferTest.java       |   30 +-
 .../apache/tika/eval/app/io/ExtractReaderTest.java |   12 +-
 .../tika/eval/app/io/FatalExceptionReaderTest.java |    3 +-
 .../tika/eval/app/reports/ResultsReporterTest.java |    5 +-
 .../eval/app/tools/TopCommonTokenCounterTest.java  |   31 +-
 tika-eval/tika-eval-core/pom.xml                   |  352 ++--
 .../eval/core/metadata/TikaEvalMetadataFilter.java |   37 +-
 .../eval/core/textstats/BytesRefCalculator.java    |    3 +
 .../tika/eval/core/textstats/CommonTokens.java     |   10 +-
 .../core/textstats/CommonTokensBhattacharyya.java  |   12 +-
 .../eval/core/textstats/CommonTokensCosine.java    |    8 +-
 .../eval/core/textstats/CommonTokensHellinger.java |   14 +-
 .../eval/core/textstats/CommonTokensKLDNormed.java |   16 +-
 .../core/textstats/CommonTokensKLDivergence.java   |   12 +-
 .../textstats/CompositeTextStatsCalculator.java    |   41 +-
 .../textstats/LanguageAwareTokenCountStats.java    |    1 +
 .../eval/core/textstats/StringStatsCalculator.java |    1 +
 .../eval/core/textstats/TextProfileSignature.java  |   18 +-
 .../eval/core/textstats/TextSha256Signature.java   |    7 +-
 .../core/textstats/TokenCountPriorityQueue.java    |    5 +-
 .../core/textstats/TokenCountStatsCalculator.java  |    1 +
 .../tika/eval/core/textstats/TokenEntropy.java     |    5 +-
 .../tika/eval/core/textstats/TokenLengths.java     |    1 +
 .../tika/eval/core/textstats/TopNTokens.java       |    6 +-
 .../eval/core/textstats/UnicodeBlockCounter.java   |    1 +
 .../core/tokens/AlphaIdeographFilterFactory.java   |   51 +-
 .../eval/core/tokens/AnalyzerDeserializer.java     |  105 +-
 .../tika/eval/core/tokens/AnalyzerManager.java     |    7 +-
 .../tokens/CJKBigramAwareLengthFilterFactory.java  |    8 +-
 .../eval/core/tokens/CommonTokenCountManager.java  |   31 +-
 .../tika/eval/core/tokens/CommonTokenResult.java   |    7 +-
 .../tika/eval/core/tokens/ContrastStatistics.java  |   48 +-
 .../apache/tika/eval/core/tokens/LangModel.java    |    4 +-
 .../tika/eval/core/tokens/TokenContraster.java     |   29 +-
 .../eval/core/tokens/TokenCountPriorityQueue.java  |    4 +-
 .../apache/tika/eval/core/tokens/TokenCounter.java |   31 +-
 .../apache/tika/eval/core/tokens/TokenIntPair.java |   17 +-
 .../tika/eval/core/tokens/TokenStatistics.java     |   85 +-
 .../tokens/URLEmailNormalizingFilterFactory.java   |    5 +-
 .../tika/eval/core/util/ContentTagParser.java      |   39 +-
 .../apache/tika/eval/core/util/ContentTags.java    |    3 +-
 .../tika/eval/core/util/EvalExceptionUtils.java    |    1 +
 .../src/main/resources/log4j.properties            |    3 +-
 .../apache/tika/eval/core/langid/LangIdTest.java   |   18 +-
 .../core/metadata/TikaEvalMetadataFilterTest.java  |   13 +-
 .../tika/eval/core/textstats/TextStatsTest.java    |   58 +-
 .../tika/eval/core/tokens/LuceneTokenCounter.java  |   26 +-
 .../tika/eval/core/tokens/TokenCounterTest.java    |   18 +-
 .../apache/tika/eval/core/util/LanguageIdTest.java |    4 +-
 .../apache/tika/eval/core/util/MimeUtilTest.java   |    5 +-
 tika-example/pom.xml                               |   78 +-
 .../apache/tika/example/ContentHandlerExample.java |   19 +-
 .../org/apache/tika/example/CustomMimeInfo.java    |   10 +-
 .../org/apache/tika/example/DirListParser.java     |   55 +-
 .../apache/tika/example/DisplayMetInstance.java    |    6 +-
 .../apache/tika/example/DumpTikaConfigExample.java |    9 +-
 .../example/EncryptedPrescriptionDetector.java     |    8 +-
 .../tika/example/EncryptedPrescriptionParser.java  |   16 +-
 .../apache/tika/example/ExtractEmbeddedFiles.java  |   18 +-
 .../tika/example/GrabPhoneNumbersExample.java      |   11 +-
 .../org/apache/tika/example/ImportContextImpl.java |   20 +-
 .../tika/example/InterruptableParsingExample.java  |   17 +-
 .../java/org/apache/tika/example/Language.java     |   25 +-
 .../tika/example/LanguageDetectingParser.java      |   10 +-
 .../tika/example/LanguageDetectorExample.java      |    4 +-
 .../org/apache/tika/example/LuceneIndexer.java     |    1 +
 .../apache/tika/example/LuceneIndexerExtended.java |    4 +-
 .../tika/example/MetadataAwareLuceneIndexer.java   |    6 +-
 .../java/org/apache/tika/example/MyFirstTika.java  |   23 +-
 .../org/apache/tika/example/ParsingExample.java    |   34 +-
 .../tika/example/PickBestTextEncodingParser.java   |   96 +-
 .../apache/tika/example/PrescriptionParser.java    |   18 +-
 .../java/org/apache/tika/example/RecentFiles.java  |   42 +-
 .../org/apache/tika/example/RollbackSoftware.java  |   54 +-
 .../org/apache/tika/example/SpringExample.java     |   12 +-
 .../tika/example/StandardsExtractionExample.java   |  124 +-
 .../org/apache/tika/example/TIAParsingExample.java |   20 +-
 .../apache/tika/example/TextStatsFromTikaEval.java |   11 +-
 .../tika/example/TranscribeTranslateExample.java   |  121 ++
 .../apache/tika/example/TrecDocumentGenerator.java |    6 +-
 .../java/org/apache/tika/example/ZipListFiles.java |    7 +-
 .../tika/example/AdvancedTypeDetectorTest.java     |    4 +-
 .../tika/example/ContentHandlerExampleTest.java    |   31 +-
 .../tika/example/DumpTikaConfigExampleTest.java    |   27 +-
 .../tika/example/ExtractEmbeddedFilesTest.java     |    2 +-
 .../tika/example/LanguageDetectorExampleTest.java  |    5 +-
 .../tika/example/SimpleTextExtractorTest.java      |   20 +-
 .../tika/example/SimpleTypeDetectorTest.java       |   30 +-
 .../apache/tika/example/TestParsingExample.java    |   37 +-
 .../apache/tika/example/TranslatorExampleTest.java |   10 +-
 tika-fuzzing/pom.xml                               |  121 +-
 .../java/org/apache/tika/fuzzing/Transformer.java  |    1 -
 .../apache/tika/fuzzing/general/ByteDeleter.java   |    1 -
 .../apache/tika/fuzzing/general/ByteInjector.java  |    1 -
 .../org/apache/tika/fuzzing/pdf/EvilCOSWriter.java |    2 +-
 .../apache/tika/fuzzing/pdf/PDFTransformer.java    |    1 -
 tika-fuzzing/src/main/resources/log4j2.properties  |   28 +
 tika-java7/pom.xml                                 |    6 +-
 .../filetypedetector/TikaFileTypeDetectorTest.java |    1 -
 tika-langdetect/pom.xml                            |  132 +-
 tika-langdetect/tika-langdetect-commons/pom.xml    |   63 -
 .../tika/langdetect/LanguageDetectorTest.java      |   90 -
 .../src/test/resources/log4j.properties            |   24 -
 tika-langdetect/tika-langdetect-lingo24/pom.xml    |  121 +-
 .../langdetect/lingo24/Lingo24LangDetector.java    |   45 +-
 .../lingo24/langdetect.lingo24.properties          |    2 +-
 .../lingo24/Lingo24LangDetectorTest.java           |   32 +-
 tika-langdetect/tika-langdetect-mitll-text/pom.xml |  121 +-
 .../tika/langdetect/mitll/TextLangDetector.java    |   58 +-
 .../langdetect/mitll/TextLangDetectorTest.java     |   27 +-
 .../src/test/resources/log4j.properties            |   24 -
 .../src/test/resources/log4j2.properties           |   29 +
 tika-langdetect/tika-langdetect-opennlp/pom.xml    |   85 +-
 .../tika/langdetect/opennlp/OpenNLPDetector.java   |  133 +-
 .../opennlp/ProbingLanguageDetector.java           |   34 +-
 .../langdetect/opennlp/OpenNLPDetectorTest.java    |   23 +-
 tika-langdetect/tika-langdetect-optimaize/pom.xml  |   93 +-
 .../optimaize/OptimaizeLangDetector.java           |  372 +++--
 .../optimaize/OptimaizeLangDetectorTest.java       |  293 ++--
 .../tika-langdetect-test-commons/pom.xml           |   54 +
 .../tika/langdetect/LanguageDetectorTest.java      |   91 +
 .../src/main/resources/log4j2.properties           |   28 +
 .../apache/tika/langdetect/language-tests/da.test  |    0
 .../apache/tika/langdetect/language-tests/de.test  |    0
 .../apache/tika/langdetect/language-tests/el.test  |    0
 .../apache/tika/langdetect/language-tests/en.test  |    0
 .../apache/tika/langdetect/language-tests/es.test  |    0
 .../apache/tika/langdetect/language-tests/et.test  |    0
 .../apache/tika/langdetect/language-tests/fi.test  |    0
 .../apache/tika/langdetect/language-tests/fr.test  |    0
 .../apache/tika/langdetect/language-tests/it.test  |    0
 .../apache/tika/langdetect/language-tests/ja.test  |    0
 .../apache/tika/langdetect/language-tests/lt.test  |    0
 .../apache/tika/langdetect/language-tests/nl.test  |    0
 .../apache/tika/langdetect/language-tests/pt.test  |    0
 .../apache/tika/langdetect/language-tests/sv.test  |    0
 .../apache/tika/langdetect/language-tests/th.test  |    0
 .../apache/tika/langdetect/language-tests/zh.test  |    0
 .../org/apache/tika/langdetect/text-test.tsv       |    0
 tika-langdetect/tika-langdetect-tika/pom.xml       |  107 +-
 .../tika/langdetect/tika/LanguageIdentifier.java   |    5 +-
 .../tika/langdetect/tika/LanguageProfile.java      |   28 +-
 .../tika/langdetect/tika/TikaLanguageDetector.java |   11 +-
 .../org/apache/tika/langdetect/tika/fa.ngp         |   14 +
 .../langdetect/tika/LanguageIdentifierTest.java    |   16 +-
 .../tika/LanguageProfilerBuilderTest.java          |   15 +-
 tika-parent/checkstyle.xml                         |   14 +-
 tika-parent/pom.xml                                |   74 +-
 tika-parsers/pom.xml                               |  105 +-
 tika-parsers/tika-parsers-advanced/pom.xml         |   89 -
 .../tika-age-recogniser/pom.xml                    |  294 ----
 tika-parsers/tika-parsers-advanced/tika-dl/pom.xml |  389 -----
 .../tika-parser-advancedmedia-module/pom.xml       |  133 --
 .../recognition/ObjectRecognitionParser.java       |  170 --
 .../recognition/tf/TensorflowImageRecParser.java   |  179 --
 .../tf/TensorflowImageRecParserTest.java           |   60 -
 .../tf/TensorflowVideoRecParserTest.java           |   57 -
 .../tika-parser-nlp-module/pom.xml                 |  342 ----
 .../apache/tika/parser/ctakes/CTAKESConfig.java    |  373 -----
 .../org/apache/tika/parser/ctakes/CTAKESUtils.java |  252 ---
 .../java/org/apache/tika/parser/geo/GeoTag.java    |   63 -
 .../tika/parser/geo/NameEntityExtractor.java       |  116 --
 .../apache/tika/parser/journal/TEIDOMParser.java   |  911 ----------
 .../parser/ner/corenlp/CoreNLPNERecogniser.java    |  178 --
 .../tika/parser/ner/grobid/GrobidNERecogniser.java |  257 ---
 .../tika/parser/ner/mitie/MITIENERecogniser.java   |  172 --
 .../tika/parser/ner/NamedEntityParserTest.java     |   96 --
 .../tika/parser/ner/opennlp/ModelGetter.groovy     |  127 --
 tika-parsers/tika-parsers-classic/pom.xml          |   87 -
 .../tika-parsers-classic-modules/pom.xml           |  122 --
 .../tika-parser-apple-module/pom.xml               |   65 -
 .../tika/parser/apple/AppleSingleFileParser.java   |  192 ---
 .../tika/parser/iwork/IWorkPackageParser.java      |  217 ---
 .../tika/parser/iwork/NumbersContentHandler.java   |  234 ---
 .../tika/parser/iwork/PagesContentHandler.java     |  474 ------
 .../parser/iwork/iwana/IWork13PackageParser.java   |  161 --
 .../parser/iwork/iwana/IWork18PackageParser.java   |  152 --
 .../tika-parser-audiovideo-module/pom.xml          |   61 -
 .../org/apache/tika/parser/audio/AudioParser.java  |  154 --
 .../org/apache/tika/parser/audio/MidiParser.java   |  121 --
 .../org/apache/tika/parser/mp3/ID3v1Handler.java   |  180 --
 .../org/apache/tika/parser/mp3/ID3v22Handler.java  |  160 --
 .../org/apache/tika/parser/mp3/ID3v23Handler.java  |  139 --
 .../org/apache/tika/parser/mp3/ID3v24Handler.java  |  144 --
 .../org/apache/tika/parser/mp3/ID3v2Frame.java     |  432 -----
 .../java/org/apache/tika/parser/mp3/Mp3Parser.java |  267 ---
 .../org/apache/tika/parser/video/FLVParser.java    |  265 ---
 .../org/apache/tika/parser/mp3/Mp3ParserTest.java  |  363 ----
 .../tika-parser-cad-module/pom.xml                 |   61 -
 .../java/org/apache/tika/parser/dwg/DWGParser.java |  342 ----
 .../tika-parser-code-module/pom.xml                |   99 --
 .../apache/tika/parser/asm/XHTMLClassVisitor.java  |  316 ----
 .../apache/tika/parser/code/SourceCodeParser.java  |  149 --
 .../tika/parser/executable/ExecutableParser.java   |  407 -----
 .../tika/parser/code/SourceCodeParserTest.java     |  131 --
 .../tika-parser-crypto-module/pom.xml              |   65 -
 .../org/apache/tika/parser/crypto/Pkcs7Parser.java |   89 -
 .../org/apache/tika/parser/crypto/TSDParser.java   |  391 -----
 .../tika-parser-digest-commons/pom.xml             |   50 -
 .../tika-parser-font-module/pom.xml                |   62 -
 .../tika-parser-html-commons/pom.xml               |   59 -
 .../sax/boilerpipe/BoilerpipeContentHandler.java   |  371 -----
 .../tika-parser-html-module/pom.xml                |   80 -
 .../org/apache/tika/parser/html/HtmlHandler.java   |  434 -----
 .../apache/tika/parser/html/HtmlParserTest.java    | 1377 ----------------
 .../tika-parser-image-module/pom.xml               |   99 --
 .../org/apache/tika/parser/image/BPGParser.java    |  172 --
 .../org/apache/tika/parser/image/ICNSParser.java   |  133 --
 .../tika/parser/image/ImageMetadataExtractor.java  |  640 -------
 .../apache/tika/parser/image/MetadataFields.java   |   89 -
 .../org/apache/tika/parser/image/PSDParser.java    |  269 ---
 .../tika-parser-jdbc-commons/pom.xml               |   30 -
 .../apache/tika/parser/jdbc/JDBCTableReader.java   |  328 ----
 .../tika-parser-mail-commons/pom.xml               |   45 -
 .../tika-parser-mail-module/pom.xml                |   89 -
 .../org/apache/tika/parser/mbox/MboxParser.java    |  218 ---
 .../tika-parser-microsoft-module/pom.xml           |  190 ---
 .../detect/microsoft/POIFSContainerDetector.java   |  485 ------
 .../microsoft/MSEmbeddedStreamTranslator.java      |  119 --
 .../tika/parser/microsoft/AbstractListManager.java |  274 ---
 .../parser/microsoft/AbstractPOIFSExtractor.java   |  279 ----
 .../tika/parser/microsoft/ExcelExtractor.java      |  733 --------
 .../tika/parser/microsoft/HSLFExtractor.java       |  561 -------
 .../tika/parser/microsoft/JackcessExtractor.java   |  420 -----
 .../apache/tika/parser/microsoft/ListManager.java  |  206 ---
 .../apache/tika/parser/microsoft/OfficeParser.java |  338 ----
 .../tika/parser/microsoft/OldExcelParser.java      |   91 -
 .../tika/parser/microsoft/OutlookExtractor.java    |  729 --------
 .../tika/parser/microsoft/SummaryExtractor.java    |  246 ---
 .../apache/tika/parser/microsoft/TNEFParser.java   |  123 --
 .../tika/parser/microsoft/WordExtractor.java       |  722 --------
 .../tika/parser/microsoft/chm/ChmBlockInfo.java    |  194 ---
 .../tika/parser/microsoft/chm/ChmCommons.java      |  367 -----
 .../microsoft/chm/ChmDirectoryListingSet.java      |  397 -----
 .../tika/parser/microsoft/chm/ChmExtractor.java    |  392 -----
 .../tika/parser/microsoft/chm/ChmItsfHeader.java   |  500 ------
 .../tika/parser/microsoft/chm/ChmItspHeader.java   |  530 ------
 .../tika/parser/microsoft/chm/ChmLzxState.java     |  322 ----
 .../parser/microsoft/chm/ChmLzxcControlData.java   |  304 ----
 .../parser/microsoft/chm/ChmLzxcResetTable.java    |  326 ----
 .../tika/parser/microsoft/chm/ChmParser.java       |  111 --
 .../tika/parser/microsoft/chm/ChmPmgiHeader.java   |  171 --
 .../tika/parser/microsoft/chm/ChmPmglHeader.java   |  198 ---
 .../microsoft/chm/DirectoryListingEntry.java       |  141 --
 .../parser/microsoft/onenote/ExtendedGUID.java     |   86 -
 .../tika/parser/microsoft/onenote/IndentUtil.java  |   27 -
 .../parser/microsoft/onenote/OneNoteParser.java    |  211 ---
 .../tika/parser/microsoft/onenote/OneNotePtr.java  | 1223 --------------
 .../microsoft/ooxml/AbstractOOXMLExtractor.java    |  536 ------
 .../microsoft/ooxml/OOXMLExtractorFactory.java     |  323 ----
 .../microsoft/ooxml/OOXMLTikaBodyPartHandler.java  |  463 ------
 .../ooxml/OOXMLWordAndPowerPointTextHandler.java   |  574 -------
 .../ooxml/POIXMLTextExtractorDecorator.java        |   51 -
 .../ooxml/SXSLFPowerPointExtractorDecorator.java   |  486 ------
 .../ooxml/XSLFPowerPointExtractorDecorator.java    |  380 -----
 .../ooxml/XSSFBExcelExtractorDecorator.java        |  164 --
 .../ooxml/XSSFExcelExtractorDecorator.java         |  611 -------
 .../ooxml/XWPFWordExtractorDecorator.java          |  491 ------
 .../microsoft/ooxml/xps/XPSPageContentHandler.java |  375 -----
 .../xslf/XSLFEventBasedPowerPointExtractor.java    |  217 ---
 .../ooxml/xwpf/XWPFEventBasedWordExtractor.java    |  376 -----
 .../ml2006/WordAndPowerPointTextPartHandler.java   |   67 -
 .../tika/parser/microsoft/rtf/TextExtractor.java   | 1539 -----------------
 .../microsoft/xml/AbstractXML2003Parser.java       |  131 --
 .../parser/microsoft/xml/SpreadsheetMLParser.java  |  157 --
 .../tika/parser/microsoft/xml/WordMLParser.java    |  300 ----
 .../tika/parser/microsoft/ExcelParserTest.java     |  569 -------
 .../tika/parser/microsoft/JackcessParserTest.java  |  186 ---
 .../parser/microsoft/chm/TestChmExtraction.java    |  245 ---
 .../parser/microsoft/ooxml/OOXMLParserTest.java    | 1743 --------------------
 .../parser/microsoft/ooxml/SXSLFExtractorTest.java |  608 -------
 .../parser/microsoft/ooxml/SXWPFExtractorTest.java |  858 ----------
 .../ooxml/xwpf/ml2006/Word2006MLParserTest.java    |  201 ---
 .../parser/microsoft/pst/OutlookPSTParserTest.java |  168 --
 .../tika/parser/microsoft/rtf/RTFParserTest.java   |  496 ------
 .../parser/microsoft/xml/XML2003ParserTest.java    |   88 -
 .../tika-parser-miscoffice-module/pom.xml          |   97 --
 .../apache/tika/detect/ole/MiscOLEDetector.java    |  215 ---
 .../apache/tika/parser/dif/DIFContentHandler.java  |  149 --
 .../java/org/apache/tika/parser/dif/DIFParser.java |   86 -
 .../org/apache/tika/parser/epub/EpubParser.java    |  486 ------
 .../apache/tika/parser/hwp/HwpTextExtractorV5.java |  501 ------
 .../tika/parser/odf/OpenDocumentBodyHandler.java   |  564 -------
 .../apache/tika/parser/odf/OpenDocumentParser.java |  367 -----
 .../tika/parser/wordperfect/QPWTextExtractor.java  |  242 ---
 .../wordperfect/WP5DocumentAreaExtractor.java      |  111 --
 .../wordperfect/WP6DocumentAreaExtractor.java      |  172 --
 .../tika/parser/wordperfect/WPInputStream.java     |  235 ---
 .../tika-parser-news-module/pom.xml                |   71 -
 .../org/apache/tika/parser/feed/FeedParser.java    |  129 --
 .../apache/tika/parser/iptc/IptcAnpaParser.java    |  854 ----------
 .../tika-parser-ocr-module/pom.xml                 |   71 -
 .../apache/tika/parser/ocr/TesseractOCRParser.java |  799 ---------
 .../tika/parser/ocr/TesseractOCRParserTest.java    |  321 ----
 .../tika-parser-pdf-module/pom.xml                 |  127 --
 .../apache/tika/parser/pdf/AbstractPDF2XHTML.java  | 1059 ------------
 .../tika/parser/pdf/ImageGraphicsEngine.java       |  490 ------
 .../java/org/apache/tika/parser/pdf/PDF2XHTML.java |  331 ----
 .../tika/parser/pdf/PDFEncodedStringDecoder.java   |  119 --
 .../java/org/apache/tika/parser/pdf/PDFParser.java |  673 --------
 .../org/apache/tika/parser/pdf/XFAExtractor.java   |  311 ----
 .../org/apache/tika/parser/pdf/PDFParserTest.java  | 1348 ---------------
 .../tika-parser-pkg-module/pom.xml                 |   96 --
 .../apache/tika/parser/pkg/CompressorParser.java   |  259 ---
 .../org/apache/tika/parser/pkg/PackageParser.java  |  478 ------
 .../apache/tika/parser/pkg/AbstractPkgTest.java    |   90 -
 .../apache/tika/parser/pkg/PackageParserTest.java  |   84 -
 .../tika-parser-text-module/pom.xml                |   83 -
 .../org/apache/tika/parser/csv/CSVSniffer.java     |  397 -----
 .../apache/tika/parser/csv/TextAndCSVParser.java   |  356 ----
 .../tika/parser/strings/Latin1StringsParser.java   |  322 ----
 .../apache/tika/parser/strings/StringsParser.java  |  294 ----
 .../apache/tika/parser/txt/CharsetDetector.java    |  610 -------
 .../org/apache/tika/parser/txt/CharsetMatch.java   |  271 ---
 .../apache/tika/parser/txt/CharsetRecog_mbcs.java  |  537 ------
 .../tika/parser/strings/StringsParserTest.java     |   78 -
 .../tika-parser-xml-module/pom.xml                 |   65 -
 .../java/org/apache/tika/parser/xml/XMLParser.java |   89 -
 .../org/apache/tika/parser/xml/XMLProfiler.java    |  150 --
 .../tika-parser-xmp-commons/pom.xml                |   61 -
 .../tika/parser/xmp/JempboxExtractorTest.java      |  136 --
 .../tika-parser-zip-commons/pom.xml                |   60 -
 .../org/apache/tika/detect/zip/IPADetector.java    |  120 --
 .../tika/detect/zip/StreamingDetectContext.java    |   82 -
 .../tika/detect/zip/ZipContainerDetectorBase.java  |  114 --
 .../tika-parsers-classic-package/pom.xml           |  425 -----
 .../tika/config/TikaEncodingDetectorTest.java      |  285 ----
 .../tika/detect/TestContainerAwareDetector.java    |  566 -------
 .../apache/tika/parser/AutoDetectParserTest.java   |  470 ------
 .../tika/parser/AutoDetectReaderParserTest.java    |  100 --
 .../tika/parser/RecursiveParserWrapperTest.java    |  412 -----
 .../java/org/apache/tika/parser/TestParsers.java   |  139 --
 .../apache/tika/parser/TestXMLEntityExpansion.java |  153 --
 .../parser/fork/ForkParserIntegrationTest.java     |  324 ----
 .../apache/tika/parser/mail/RFC822ParserTest.java  |  170 --
 .../org/apache/tika/parser/pdf/PDFParserTest.java  |  407 -----
 .../apache/tika/parser/pkg/Seven7ParserTest.java   |  182 --
 .../org/apache/tika/parser/pkg/ZipParserTest.java  |  142 --
 .../org/apache/tika/parser/TIKA-3137-include.xml   |   38 -
 tika-parsers/tika-parsers-extended/pom.xml         |  147 +-
 .../tika-parser-scientific-module/pom.xml          |  439 ++---
 .../apache/tika/parser/envi/EnviHeaderParser.java  |    7 +-
 .../org/apache/tika/parser/gdal/GDALParser.java    |   63 +-
 .../org/apache/tika/parser/grib/GribParser.java    |   64 +-
 .../org/apache/tika/parser/isatab/ISATabUtils.java |    2 +-
 .../apache/tika/parser/isatab/ISArchiveParser.java |    9 +-
 .../tika-parser-sqlite3-module/pom.xml             |  160 +-
 .../tika/parser/sqlite3/SQLite3DBParser.java       |   10 +-
 .../pom.xml                                        |   84 +-
 .../tika/parser/sqlite3/SQLite3ParserTest.java     |    2 +-
 tika-parsers/tika-parsers-ml/pom.xml               |   92 ++
 .../tika-parsers-ml/tika-age-recogniser/pom.xml    |  298 ++++
 .../tika/parser/recognition/AgeRecogniser.java     |    0
 .../parser/recognition/AgeRecogniserConfig.java    |    0
 .../tika/parser/recognition/AgeRecogniserTest.java |    0
 .../tika/parser/recognition/tika-config-age.xml    |    0
 tika-parsers/tika-parsers-ml/tika-dl/pom.xml       |  389 +++++
 .../tika/dl/imagerec/DL4JInceptionV3Net.java       |    0
 .../org/apache/tika/dl/imagerec/DL4JVGG16Net.java  |    0
 .../tika/dl/imagerec/DL4JInceptionV3NetTest.java   |    0
 .../apache/tika/dl/imagerec/DL4JVGG16NetTest.java  |    0
 .../resources/org/apache/tika/dl/imagerec/cat.jpg  |  Bin
 .../tika/dl/imagerec/dl4j-inception3-config.xml    |    0
 .../apache/tika/dl/imagerec/dl4j-vgg16-config.xml  |    0
 .../resources/org/apache/tika/dl/imagerec/lion.jpg |  Bin
 .../tika-parser-advancedmedia-module/pom.xml       |  133 ++
 .../tika/parser/captioning/CaptionObject.java      |    0
 .../captioning/tf/TensorflowRESTCaptioner.java     |    0
 .../tika/parser/pot/PooledTimeSeriesParser.java    |    0
 .../tika/parser/recognition/ObjectRecogniser.java  |    0
 .../recognition/ObjectRecognitionParser.java       |  170 ++
 .../tika/parser/recognition/RecognisedObject.java  |    0
 .../recognition/tf/TensorflowImageRecParser.java   |  174 ++
 .../recognition/tf/TensorflowRESTRecogniser.java   |    0
 .../tf/TensorflowRESTVideoRecogniser.java          |    0
 .../tika/parser/captioning/tf/caption_generator.py |    0
 .../apache/tika/parser/captioning/tf/im2txtapi.py  |    0
 .../tika/parser/captioning/tf/model_info.xml       |    0
 .../tika/parser/captioning/tf/model_wrapper.py     |    0
 .../apache/tika/parser/captioning/tf/vocabulary.py |    0
 .../tika/parser/recognition/tf/inception_v4.py     |    0
 .../tika/parser/recognition/tf/inceptionapi.py     |    0
 .../tika/parser/recognition/tf/video_util.py       |    0
 .../recognition/tika-config-tflow-im2txt-rest.xml  |    0
 .../parser/recognition/tika-config-tflow-rest.xml  |    0
 .../recognition/tika-config-tflow-video-rest.xml   |    0
 .../tika/parser/recognition/tika-config-tflow.xml  |    0
 .../recognition/ObjectRecognitionParserTest.java   |    0
 .../tf/TensorflowImageRecParserTest.java           |   59 +
 .../tf/TensorflowVideoRecParserTest.java           |   56 +
 .../tika-parsers-ml/tika-parser-nlp-module/pom.xml |  334 ++++
 .../parser/ctakes/CTAKESAnnotationProperty.java    |    0
 .../apache/tika/parser/ctakes/CTAKESConfig.java    |  373 +++++
 .../tika/parser/ctakes/CTAKESContentHandler.java   |    0
 .../apache/tika/parser/ctakes/CTAKESParser.java    |    0
 .../tika/parser/ctakes/CTAKESSerializer.java       |    0
 .../org/apache/tika/parser/ctakes/CTAKESUtils.java |  250 +++
 .../java/org/apache/tika/parser/geo/GeoParser.java |    0
 .../apache/tika/parser/geo/GeoParserConfig.java    |    0
 .../java/org/apache/tika/parser/geo/GeoTag.java    |   63 +
 .../tika/parser/geo/NameEntityExtractor.java       |  116 ++
 .../parser/geo/gazetteer/GeoGazetteerClient.java   |    0
 .../apache/tika/parser/geo/gazetteer/Location.java |    0
 .../tika/parser/journal/GrobidRESTParser.java      |    0
 .../apache/tika/parser/journal/JournalParser.java  |    0
 .../apache/tika/parser/journal/TEIDOMParser.java   |  911 ++++++++++
 .../org/apache/tika/parser/ner/NERecogniser.java   |    0
 .../apache/tika/parser/ner/NamedEntityParser.java  |    0
 .../parser/ner/corenlp/CoreNLPNERecogniser.java    |  178 ++
 .../tika/parser/ner/grobid/GrobidNERecogniser.java |  257 +++
 .../tika/parser/ner/mitie/MITIENERecogniser.java   |  173 ++
 .../tika/parser/ner/nltk/NLTKNERecogniser.java     |    0
 .../parser/ner/opennlp/OpenNLPNERecogniser.java    |    0
 .../tika/parser/ner/opennlp/OpenNLPNameFinder.java |    0
 .../tika/parser/ner/regex/RegexNERecogniser.java   |    0
 .../parser/sentiment/SentimentAnalysisParser.java  |    0
 .../services/org.apache.tika.parser.Parser         |    0
 .../tika/parser/ctakes/CTAKESConfig.properties     |    0
 .../tika/parser/geo/GeoTopicConfig.properties      |    0
 .../tika/parser/journal/GrobidExtractor.properties |    0
 .../tika/parser/ner/grobid/GrobidServer.properties |    0
 .../tika/parser/ner/nltk/NLTKServer.properties     |    0
 .../org/apache/tika/parser/ner/regex/ner-regex.txt |    0
 .../org/apache/tika/parser/geo/GeoParserTest.java  |    0
 .../tika/parser/journal/JournalParserTest.java     |    0
 .../org/apache/tika/parser/journal/TEITest.java    |    0
 .../tika/parser/ner/NamedEntityParserTest.java     |   96 ++
 .../tika/parser/ner/nltk/NLTKNERecogniserTest.java |    0
 .../parser/ner/regex/RegexNERecogniserTest.java    |    0
 .../sentiment/SentimentAnalysisParserTest.java     |    0
 .../tika/config/TIKA-3078-geo.topic.GeoParser.xml  |    0
 .../tika/parser/ner/opennlp/ModelGetter.groovy     |  127 ++
 .../apache/tika/parser/ner/opennlp/get-models.sh   |    0
 .../org/apache/tika/parser/ner/regex/ner-regex.txt |    0
 .../apache/tika/parser/ner/regex}/tika-config.xml  |    0
 .../org/apache/tika/parser/ner}/tika-config.xml    |    0
 .../tika-config-sentiment-opennlp-cat.xml          |    0
 .../sentiment/tika-config-sentiment-opennlp.xml    |    0
 .../resources/test-documents/testJournalParser.pdf |  Bin
 .../src/test/resources/test-documents/testTEI.xml  |    0
 .../tika-parsers-ml/tika-transcribe-aws/pom.xml    |  192 +++
 .../parser/transcribe/aws/AmazonTranscribe.java    |  398 +++++
 .../transcribe/aws/AmazonTranscribeTest.java       |  310 ++++
 .../test-documents/ShortAudioSampleFrench.mp3      |  Bin 0 -> 25861 bytes
 .../test-documents/de-DE_(We_Are_At_School_x2).mp3 |  Bin 0 -> 38547 bytes
 .../en-AU_(A_Little_Bottle_Of_Water).mp3           |  Bin 0 -> 33365 bytes
 .../en-GB_(A_Little_Bottle_Of_Water).mp3           |  Bin 0 -> 35872 bytes
 .../en-US_(A_Little_Bottle_Of_Water).mp3           |  Bin 0 -> 29603 bytes
 .../test/resources/test-documents/en-US_(Hi).mp4   |  Bin 0 -> 21739 bytes
 .../it-IT_(We_Are_Having_Class_x2).mp3             |  Bin 0 -> 42219 bytes
 .../test-documents/ja-JP_(We_Are_At_School).mp3    |  Bin 0 -> 21699 bytes
 .../test-documents/ko-KR_(Annyeonghaseyo).mp4      |  Bin 0 -> 144151 bytes
 .../ko-KR_(We_Are_Having_Class_x2).mp3             |  Bin 0 -> 66843 bytes
 .../test-documents/pt-BR_(We_Are_At_School).mp3    |  Bin 0 -> 29043 bytes
 .../test/resources/tika-config-aws-transcribe.xml  |   29 +
 tika-parsers/tika-parsers-standard/pom.xml         |   86 +
 .../tika-parsers-standard-modules/pom.xml          |  122 ++
 .../tika-parser-apple-module/pom.xml               |   65 +
 .../apache/tika/detect/apple/BPListDetector.java   |    0
 .../apache/tika/detect/apple/IWorkDetector.java    |    0
 .../tika/parser/apple/AppleSingleFileParser.java   |  192 +++
 .../org/apache/tika/parser/apple/PListParser.java  |    0
 .../tika/parser/iwork/AutoPageNumberUtils.java     |    0
 .../tika/parser/iwork/IWorkPackageParser.java      |  217 +++
 .../tika/parser/iwork/KeynoteContentHandler.java   |    0
 .../tika/parser/iwork/NumbersContentHandler.java   |  234 +++
 .../tika/parser/iwork/PagesContentHandler.java     |  474 ++++++
 .../parser/iwork/iwana/IWork13PackageParser.java   |  161 ++
 .../parser/iwork/iwana/IWork18PackageParser.java   |  152 ++
 .../services/org.apache.tika.detect.Detector       |    0
 ...org.apache.tika.detect.zip.ZipContainerDetector |    0
 .../services/org.apache.tika.parser.Parser         |    0
 .../apache/tika/parser/apple/PListParserTest.java  |    0
 .../tika/parser/iwork/AutoPageNumberUtilsTest.java |    0
 .../apache/tika/parser/iwork/IWorkParserTest.java  |    0
 .../tika/parser/iwork/iwana/IWork13ParserTest.java |    0
 .../resources/test-documents/tableHeaders.numbers  |  Bin
 .../resources/test-documents/tableNames.numbers    |  Bin
 .../test-documents/testAppleSingleFile.pdf         |  Bin
 .../resources/test-documents/testBPList.bplist     |  Bin
 .../resources/test-documents/testBulletPoints.key  |  Bin
 .../test/resources/test-documents/testKeynote.key  |  Bin
 .../resources/test-documents/testKeynote2013.key   |  Bin
 .../resources/test-documents/testKeynote2018.key   |  Bin
 .../test-documents/testMasterSlideTable.key        |  Bin
 .../resources/test-documents/testNumbers.numbers   |  Bin
 .../test-documents/testNumbers2013.numbers         |  Bin
 .../test-documents/testNumbersCharts.numbers       |  Bin
 .../test/resources/test-documents/testPages.pages  |  Bin
 .../resources/test-documents/testPages2013.pages   |  Bin
 .../test-documents/testPagesComments.pages         |  Bin
 .../testPagesHeadersFootersAlphaLower.pages        |  Bin
 .../testPagesHeadersFootersAlphaUpper.pages        |  Bin
 .../testPagesHeadersFootersFootnotes.pages         |  Bin
 .../testPagesHeadersFootersRomanLower.pages        |  Bin
 .../testPagesHeadersFootersRomanUpper.pages        |  Bin
 .../resources/test-documents/testPagesLayout.pages |  Bin
 .../test-documents/testPagesPwdProtected.pages     |  Bin
 .../test/resources/test-documents/testTables.key   |  Bin
 .../resources/test-documents/testTextBoxes.key     |  Bin
 .../test-documents/testWEBARCHIVE.webarchive       |    0
 .../tika-parser-audiovideo-module/pom.xml          |   61 +
 .../org/apache/tika/parser/audio/AudioParser.java  |  154 ++
 .../org/apache/tika/parser/audio/MidiParser.java   |  121 ++
 .../org/apache/tika/parser/mp3/AudioFrame.java     |    0
 .../tika/parser/mp3/CompositeTagHandler.java       |    0
 .../java/org/apache/tika/parser/mp3/ID3Tags.java   |    0
 .../org/apache/tika/parser/mp3/ID3v1Handler.java   |  180 ++
 .../org/apache/tika/parser/mp3/ID3v22Handler.java  |  169 ++
 .../org/apache/tika/parser/mp3/ID3v23Handler.java  |  151 ++
 .../org/apache/tika/parser/mp3/ID3v24Handler.java  |  157 ++
 .../org/apache/tika/parser/mp3/ID3v2Frame.java     |  432 +++++
 .../org/apache/tika/parser/mp3/LyricsHandler.java  |    0
 .../java/org/apache/tika/parser/mp3/MP3Frame.java  |    0
 .../java/org/apache/tika/parser/mp3/Mp3Parser.java |  267 +++
 .../org/apache/tika/parser/mp3/MpegStream.java     |    0
 .../apache/tika/parser/mp4/ISO6709Extractor.java   |    0
 .../java/org/apache/tika/parser/mp4/MP4Parser.java |    0
 .../org/apache/tika/parser/video/FLVParser.java    |  265 +++
 .../services/org.apache.tika.parser.Parser         |    0
 .../apache/tika/parser/audio/AudioParserTest.java  |    0
 .../apache/tika/parser/audio/MidiParserTest.java   |    0
 .../org/apache/tika/parser/mp3/Mp3ParserTest.java  |  363 ++++
 .../org/apache/tika/parser/mp3/MpegStreamTest.java |    0
 .../org/apache/tika/parser/mp4/MP4ParserTest.java  |    0
 .../apache/tika/parser/video/FLVParserTest.java    |    0
 .../src/test/resources/test-documents/test2.mp3    |  Bin
 .../src/test/resources/test-documents/testAIFF.aif |  Bin
 .../src/test/resources/test-documents/testAU.au    |  Bin
 .../src/test/resources/test-documents/testFLV.flv  |  Bin
 .../src/test/resources/test-documents/testMID.mid  |  Bin
 .../test/resources/test-documents/testMP3i18n.mp3  |  Bin
 .../test-documents/testMP3i18n_truncated.mp3       |  Bin
 .../test/resources/test-documents/testMP3id3v1.mp3 |  Bin
 .../resources/test-documents/testMP3id3v1_v2.mp3   |  Bin
 .../test/resources/test-documents/testMP3id3v2.mp3 |  Bin
 .../resources/test-documents/testMP3id3v24.mp3     |  Bin
 .../resources/test-documents/testMP3lyrics.mp3     |  Bin
 .../test/resources/test-documents/testMP3noid3.mp3 |  Bin
 .../resources/test-documents/testMP3truncated.mp3  |  Bin
 .../src/test/resources/test-documents/testMP4.m4a  |  Bin
 .../resources/test-documents/testMP4_truncated.m4a |  Bin
 .../resources/test-documents/testNakedUTF16BOM.mp3 |  Bin
 .../src/test/resources/test-documents/testWAV.wav  |  Bin
 .../tika-parser-cad-module/pom.xml                 |   61 +
 .../java/org/apache/tika/parser/dwg/DWGParser.java |  346 ++++
 .../java/org/apache/tika/parser/prt/PRTParser.java |    0
 .../services/org.apache.tika.parser.Parser         |    0
 .../org/apache/tika/parser/dwg/DWGParserTest.java  |    0
 .../org/apache/tika/parser/prt/PRTParserTest.java  |    0
 .../test/resources/test-documents/testCADKEY.prt   |  Bin
 .../test/resources/test-documents/testCADKEY2.prt  |  Bin
 .../test/resources/test-documents/testDWG2000.dwg  |  Bin
 .../test/resources/test-documents/testDWG2004.dwg  |  Bin
 .../test-documents/testDWG2004_no_header.dwg       |  Bin
 .../test/resources/test-documents/testDWG2007.dwg  |  Bin
 .../test/resources/test-documents/testDWG2010.dwg  |  Bin
 .../test-documents/testDWG2010_custom_props.dwg    |  Bin
 .../resources/test-documents/testDWGmech2004.dwg   |  Bin
 .../resources/test-documents/testDWGmech2004DX.dwg |  Bin
 .../resources/test-documents/testDWGmech2005.dwg   |  Bin
 .../resources/test-documents/testDWGmech2006.dwg   |  Bin
 .../resources/test-documents/testDWGmech2007.dwg   |  Bin
 .../resources/test-documents/testDWGmech2008.dwg   |  Bin
 .../resources/test-documents/testDWGmech2009.dwg   |  Bin
 .../resources/test-documents/testDWGmech2010.dwg   |  Bin
 .../resources/test-documents/testDWGmech2011.dwg   |  Bin
 .../test/resources/test-documents/testDWGmech6.dwg |  Bin
 .../tika-parser-code-module/pom.xml                |   99 ++
 .../org/apache/tika/parser/asm/ClassParser.java    |    0
 .../apache/tika/parser/asm/XHTMLClassVisitor.java  |  315 ++++
 .../apache/tika/parser/code/SourceCodeParser.java  |  149 ++
 .../tika/parser/executable/ExecutableParser.java   |  407 +++++
 .../java/org/apache/tika/parser/mat/MatParser.java |    0
 .../org/apache/tika/parser/sas/SAS7BDATParser.java |    0
 .../services/org.apache.tika.parser.Parser         |    0
 .../apache/tika/parser/asm/ClassParserTest.java    |    0
 .../tika/parser/code/SourceCodeParserTest.java     |  131 ++
 .../parser/executable/ExecutableParserTest.java    |    0
 .../org/apache/tika/parser/mat/MatParserTest.java  |    0
 .../apache/tika/parser/sas/SAS7BDATParserTest.java |    0
 .../test-documents/AppleSingleFileParser.class     |  Bin
 .../test-documents/AutoDetectParser.class          |  Bin
 .../breidamerkurjokull_radar_profiles_2009.mat     |  Bin
 .../resources/test-documents/test-columnar.sas.xml |    0
 .../test-documents/test-columnar.sas7bdat          |  Bin
 .../src/test/resources/test-documents/testC.c      |    0
 .../src/test/resources/test-documents/testCPP.cpp  |    0
 .../resources/test-documents/testGROOVY.groovy     |    0
 .../test/resources/test-documents/testJAVA.java    |    0
 .../src/test/resources/test-documents/testJS.js    |    0
 .../test/resources/test-documents/testJS_HTML.js   |    0
 .../resources/test-documents/testLinux-arm-32le    |  Bin
 .../resources/test-documents/testLinux-mips-32be   |  Bin
 .../resources/test-documents/testLinux-mips-32le   |  Bin
 .../resources/test-documents/testLinux-ppc-32be    |  Bin
 .../test/resources/test-documents/testLinux-x86-32 |  Bin
 .../test/resources/test-documents/testLinux-x86-64 |  Bin
 .../src/test/resources/test-documents/testMATLAB.m |    0
 .../resources/test-documents/testMATLAB_barcast.m  |    0
 .../resources/test-documents/testMATLAB_wtsgaus.m  |    0
 .../src/test/resources/test-documents/testSAS.sas  |    0
 .../test/resources/test-documents/testSAS.sas7bdat |  Bin
 .../src/test/resources/test-documents/testSAS.sd2  |  Bin
 .../src/test/resources/test-documents/testSAS.xpt  |  Bin
 .../src/test/resources/test-documents/testSAS2.sas |    0
 .../test-documents/testWindows-x86-32.exe          |  Bin
 .../resources/test-documents/test_mat_text.mat     |  Bin
 .../tika-parser-crypto-module/pom.xml              |   65 +
 .../org/apache/tika/parser/crypto/Pkcs7Parser.java |   89 +
 .../org/apache/tika/parser/crypto/TSDParser.java   |  394 +++++
 .../services/org.apache.tika.parser.Parser         |    0
 .../apache/tika/parser/crypto/Pkcs7ParserTest.java |    0
 .../apache/tika/parser/crypto/TSDParserTest.java   |    0
 .../test/resources/test-documents/MANIFEST.XML.TSD |  Bin
 .../test/resources/test-documents/Test1.txt.tsd    |  Bin
 .../test/resources/test-documents/Test2.txt.tsd    |  Bin
 .../test/resources/test-documents/Test3.docx.tsd   |  Bin
 .../test/resources/test-documents/Test4.pdf.tsd    |  Bin
 .../test/resources/test-documents/Test5.PNG.tsd    |  Bin
 .../src/test/resources/test-documents/testCERT.der |  Bin
 .../src/test/resources/test-documents/testCERT.pem |    0
 .../test/resources/test-documents/testDSAKEY.der   |  Bin
 .../test/resources/test-documents/testDSAKEY.pem   |    0
 .../resources/test-documents/testDSAPARAMS.pem     |    0
 .../test/resources/test-documents/testDetached.p7s |  Bin
 .../test/resources/test-documents/testECKEY.der    |  Bin
 .../test/resources/test-documents/testECKEY.pem    |    0
 .../test/resources/test-documents/testECPARAMS.pem |    0
 .../test/resources/test-documents/testRSAKEY.der   |  Bin
 .../test/resources/test-documents/testRSAKEY.pem   |    0
 .../test-documents/testTSD_broken_pdf.tsd          |  Bin
 .../tika-parser-digest-commons/pom.xml             |   50 +
 .../parser/digestutils/BouncyCastleDigester.java   |    0
 .../tika/parser/digestutils/CommonsDigester.java   |    0
 .../tika-parser-font-module/pom.xml                |   62 +
 .../tika/parser/font/AdobeFontMetricParser.java    |    0
 .../apache/tika/parser/font/TrueTypeParser.java    |    0
 .../services/org.apache.tika.parser.Parser         |    0
 .../apache/tika/parser/font/FontParsersTest.java   |    0
 .../src/test/resources/test-documents/testAFM.afm  |    0
 .../resources/test-documents/testTrueType3.ttf     |  Bin
 .../tika-parser-html-commons/pom.xml               |   59 +
 .../sax/boilerpipe/BoilerpipeContentHandler.java   |  371 +++++
 .../tika-parser-html-module/pom.xml                |   80 +
 .../org/apache/tika/parser/html/DataURIScheme.java |    0
 .../parser/html/DataURISchemeParseException.java   |    0
 .../apache/tika/parser/html/DataURISchemeUtil.java |    0
 .../apache/tika/parser/html/DefaultHtmlMapper.java |    0
 .../tika/parser/html/HtmlEncodingDetector.java     |    0
 .../org/apache/tika/parser/html/HtmlHandler.java   |  434 +++++
 .../org/apache/tika/parser/html/HtmlMapper.java    |    0
 .../org/apache/tika/parser/html/HtmlParser.java    |    0
 .../tika/parser/html/IdentityHtmlMapper.java       |    0
 .../tika/parser/html/XHTMLDowngradeHandler.java    |    0
 .../html/charsetdetector/CharsetAliases.java       |    0
 .../charsetdetector/CharsetDetectionResult.java    |    0
 .../parser/html/charsetdetector/MetaProcessor.java |    0
 .../parser/html/charsetdetector/PreScanner.java    |    0
 .../StandardHtmlEncodingDetector.java              |    0
 .../charsets/ReplacementCharset.java               |    0
 .../charsets/XUserDefinedCharset.java              |    0
 .../org.apache.tika.detect.EncodingDetector        |    0
 .../services/org.apache.tika.parser.Parser         |    0
 .../html/StandardCharsets_unsupported_by_IANA.txt  |    0
 .../tika/parser/html/DataURISchemeParserTest.java  |    0
 .../tika/parser/html/HtmlEncodingDetectorTest.java |    0
 .../apache/tika/parser/html/HtmlParserTest.java    | 1376 +++++++++++++++
 .../html/StandardHtmlEncodingDetectorTest.java     |    0
 .../org/apache/tika/parser/html/tika-config.xml    |    0
 .../resources/test-documents/big-preamble.html     |    0
 .../test-documents/boilerplate-whitespace.html     |    0
 .../test/resources/test-documents/boilerplate.html |    0
 .../testBoilerplateMissingSpace.html               |    0
 .../test/resources/test-documents/testHTML.html    |    0
 .../test-documents/testHTMLBadScript.html          |    0
 .../test-documents/testHTMLGoodScript.html         |    0
 .../testHTMLNoisyMetaEncoding_1.html               |    0
 .../testHTMLNoisyMetaEncoding_2.html               |    0
 .../testHTMLNoisyMetaEncoding_3.html               |    0
 .../testHTMLNoisyMetaEncoding_4.html               |    0
 .../test-documents/testHTML_charset_utf16le.html   |  Bin
 .../test-documents/testHTML_charset_utf8.html      |    0
 .../testHTML_embedded_data_uri_js.html             |    0
 .../test-documents/testHTML_embedded_img.html      |    0
 .../testHTML_embedded_img_in_js.html               |    0
 .../resources/test-documents/testHTML_head.html    |    0
 .../resources/test-documents/testHTML_utf8.html    |    0
 .../test-documents/testUserDefinedCharset.mhtml    |    0
 .../test/resources/test-documents/testXHTML.html   |    0
 .../src/test/resources/test-documents/tika434.html |    0
 .../tika-parser-image-module/pom.xml               |   99 ++
 .../tika/parser/image/AbstractImageParser.java     |    0
 .../org/apache/tika/parser/image/BPGParser.java    |  172 ++
 .../org/apache/tika/parser/image/HeifParser.java   |    0
 .../org/apache/tika/parser/image/ICNSParser.java   |  142 ++
 .../org/apache/tika/parser/image/ICNSType.java     |    0
 .../tika/parser/image/ImageMetadataExtractor.java  |  634 +++++++
 .../org/apache/tika/parser/image/ImageParser.java  |    0
 .../org/apache/tika/parser/image/JpegParser.java   |    0
 .../apache/tika/parser/image/MetadataFields.java   |   89 +
 .../org/apache/tika/parser/image/PSDParser.java    |  268 +++
 .../org/apache/tika/parser/image/TiffParser.java   |    0
 .../org/apache/tika/parser/image/WebPParser.java   |    0
 .../services/org.apache.tika.parser.Parser         |    0
 .../apache/tika/parser/image/HeifParserTest.java   |    0
 .../apache/tika/parser/image/ICNSParserTest.java   |    0
 .../parser/image/ImageMetadataExtractorTest.java   |    0
 .../apache/tika/parser/image/ImageParserTest.java  |    0
 .../apache/tika/parser/image/JpegParserTest.java   |    0
 .../apache/tika/parser/image/PSDParserTest.java    |    0
 .../apache/tika/parser/image/WebPParserTest.java   |    0
 .../tika/parser/image/tika-config-TIKA-3243.xml    |    0
 .../test/resources/test-documents/IMG_1034.heic    |  Bin
 .../test/resources/test-documents/testAVIF.avif    |  Bin
 .../src/test/resources/test-documents/testBMP.bmp  |  Bin
 .../src/test/resources/test-documents/testBPG.bpg  |  Bin
 .../test/resources/test-documents/testBPG_GEO.bpg  |  Bin
 .../resources/test-documents/testBPG_commented.bpg |  Bin
 .../testBPG_commented_xnviewmp026.bpg              |  Bin
 .../src/test/resources/test-documents/testGIF.gif  |  Bin
 .../test/resources/test-documents/testHEIF.heic    |  Bin
 .../test/resources/test-documents/testICNS.icns    |  Bin
 .../resources/test-documents/testICNS_basic.icns   |  Bin
 .../test/resources/test-documents/testJBIG2.jb2    |  Bin
 .../src/test/resources/test-documents/testJPEG.jp2 |  Bin
 .../src/test/resources/test-documents/testJPEG.jpg |  Bin
 .../resources/test-documents/testJPEG_EXIF.jpg     |  Bin
 .../test-documents/testJPEG_EXIF_emptyDateTime.jpg |  Bin
 .../test/resources/test-documents/testJPEG_GEO.jpg |  Bin
 .../resources/test-documents/testJPEG_GEO_2.jpg    |  Bin
 .../test-documents/testJPEG_oddTagComponent.jpg    |  Bin
 .../src/test/resources/test-documents/testPNG.png  |  Bin
 .../src/test/resources/test-documents/testPSD.psd  |  Bin
 .../src/test/resources/test-documents/testPSD2.psd |  Bin
 .../test/resources/test-documents/testPSD_xmp.psd  |  Bin
 .../src/test/resources/test-documents/testTIFF.tif |  Bin
 .../test/resources/test-documents/testWEBP.webp    |  Bin
 .../test-documents/testWebp_Alpha_Lossless.webp    |  Bin
 .../test-documents/testWebp_Alpha_Lossy.webp       |  Bin
 .../tika-parser-jdbc-commons/pom.xml               |   30 +
 .../apache/tika/parser/jdbc/AbstractDBParser.java  |    0
 .../apache/tika/parser/jdbc/JDBCTableReader.java   |  328 ++++
 .../tika-parser-mail-commons/pom.xml               |   45 +
 .../tika/parser/mailcommons/MailDateParser.java    |    0
 .../apache/tika/parser/mailcommons/MailUtil.java   |    0
 .../tika/parser/mailcommons/MailUtilTest.java      |    0
 .../tika-parser-mail-module/pom.xml                |   89 +
 .../tika/parser/mail/MailContentHandler.java       |    0
 .../org/apache/tika/parser/mail/RFC822Parser.java  |    0
 .../org/apache/tika/parser/mbox/MboxParser.java    |  218 +++
 .../services/org.apache.tika.parser.Parser         |    0
 .../apache/tika/parser/mail/RFC822ParserTest.java  |    0
 .../apache/tika/parser/mbox/MboxParserTest.java    |    0
 .../mail/tika-config-extract-all-alternatives.xml  |    0
 .../src/test/resources/test-documents/complex.mbox |    0
 .../src/test/resources/test-documents/headers.mbox |    0
 .../test/resources/test-documents/multiline.mbox   |    0
 .../src/test/resources/test-documents/quoted.mbox  |    0
 .../src/test/resources/test-documents/simple.mbox  |    0
 .../test/resources/test-documents/single_mail.mbox |    0
 .../test-documents/testEmailWithPNGAtt.eml         |    0
 .../resources/test-documents/testGroupWiseEml.eml  |    0
 .../resources/test-documents/testMBOX_complex.mbox |    0
 .../test-documents/testMBOX_lengthy_x-headers.mbox |    0
 .../src/test/resources/test-documents/testRFC822   |    0
 .../resources/test-documents/testRFC822-CC-BCC     |    0
 .../test/resources/test-documents/testRFC822-big   |    0
 .../test-documents/testRFC822-limitedheaders       |    0
 .../test-documents/testRFC822-mixed-simple         |    0
 .../testRFC822-mixed-with-pdf-inline               |    0
 .../resources/test-documents/testRFC822-multipart  |    0
 .../resources/test-documents/testRFC822-txt-body   |    0
 .../resources/test-documents/testRFC822_base64     |    0
 .../resources/test-documents/testRFC822_date_utf8  |    0
 .../resources/test-documents/testRFC822_dkim.eml   |    0
 .../test/resources/test-documents/testRFC822_eml   |    0
 .../test-documents/testRFC822_encrypted_zip        |    0
 .../test-documents/testRFC822_i18nheaders          |    0
 .../resources/test-documents/testRFC822_normal_zip |    0
 .../resources/test-documents/testRFC822_oddfrom    |    0
 .../resources/test-documents/testRFC822_quoted     |    0
 .../testRFC822_simple_inline_body.txt              |    0
 .../resources/test-documents/testRFC822_x-.eml     |    0
 .../tika-parser-microsoft-module/pom.xml           |  190 +++
 .../detect/microsoft/POIFSContainerDetector.java   |  485 ++++++
 .../detect/microsoft/ooxml/OPCPackageDetector.java |    0
 .../microsoft/MSEmbeddedStreamTranslator.java      |  116 ++
 .../tika/parser/microsoft/AbstractListManager.java |  274 +++
 .../parser/microsoft/AbstractOfficeParser.java     |    0
 .../parser/microsoft/AbstractPOIFSExtractor.java   |  281 ++++
 .../org/apache/tika/parser/microsoft/Cell.java     |    0
 .../tika/parser/microsoft/CellDecorator.java       |    0
 .../apache/tika/parser/microsoft/EMFParser.java    |    0
 .../tika/parser/microsoft/ExcelExtractor.java      |  729 ++++++++
 .../tika/parser/microsoft/FormattingUtils.java     |    0
 .../tika/parser/microsoft/HSLFExtractor.java       |  558 +++++++
 .../tika/parser/microsoft/JackcessExtractor.java   |  420 +++++
 .../tika/parser/microsoft/JackcessParser.java      |    0
 .../apache/tika/parser/microsoft/LinkedCell.java   |    0
 .../apache/tika/parser/microsoft/ListManager.java  |  202 +++
 .../tika/parser/microsoft/MSOwnerFileParser.java   |    0
 .../apache/tika/parser/microsoft/NumberCell.java   |    0
 .../apache/tika/parser/microsoft/OfficeParser.java |  338 ++++
 .../tika/parser/microsoft/OfficeParserConfig.java  |    0
 .../tika/parser/microsoft/OldExcelParser.java      |   91 +
 .../tika/parser/microsoft/OutlookExtractor.java    |  729 ++++++++
 .../tika/parser/microsoft/SummaryExtractor.java    |  246 +++
 .../apache/tika/parser/microsoft/TNEFParser.java   |  123 ++
 .../org/apache/tika/parser/microsoft/TextCell.java |    0
 .../parser/microsoft/TikaExcelDataFormatter.java   |    0
 .../parser/microsoft/TikaExcelGeneralFormat.java   |    0
 .../apache/tika/parser/microsoft/WMFParser.java    |    0
 .../tika/parser/microsoft/WordExtractor.java       |  723 ++++++++
 .../tika/parser/microsoft/chm/ChmAccessor.java     |    0
 .../tika/parser/microsoft/chm/ChmAssert.java       |    0
 .../tika/parser/microsoft/chm/ChmBlockInfo.java    |  194 +++
 .../tika/parser/microsoft/chm/ChmCommons.java      |  357 ++++
 .../tika/parser/microsoft/chm/ChmConstants.java    |    0
 .../microsoft/chm/ChmDirectoryListingSet.java      |  399 +++++
 .../tika/parser/microsoft/chm/ChmExtractor.java    |  392 +++++
 .../tika/parser/microsoft/chm/ChmItsfHeader.java   |  500 ++++++
 .../tika/parser/microsoft/chm/ChmItspHeader.java   |  556 +++++++
 .../tika/parser/microsoft/chm/ChmLzxBlock.java     |    0
 .../tika/parser/microsoft/chm/ChmLzxState.java     |  341 ++++
 .../parser/microsoft/chm/ChmLzxcControlData.java   |  315 ++++
 .../parser/microsoft/chm/ChmLzxcResetTable.java    |  325 ++++
 .../tika/parser/microsoft/chm/ChmParser.java       |  109 ++
 .../parser/microsoft/chm/ChmParsingException.java  |    0
 .../tika/parser/microsoft/chm/ChmPmgiHeader.java   |  171 ++
 .../tika/parser/microsoft/chm/ChmPmglHeader.java   |  198 +++
 .../tika/parser/microsoft/chm/ChmSection.java      |    0
 .../tika/parser/microsoft/chm/ChmWrapper.java      |    0
 .../microsoft/chm/DirectoryListingEntry.java       |  141 ++
 .../microsoft/onenote/CheckedFileNodePushBack.java |    0
 .../tika/parser/microsoft/onenote/CompactID.java   |    0
 .../tika/parser/microsoft/onenote/Error.java       |    0
 .../parser/microsoft/onenote/ExtendedGUID.java     |   86 +
 .../microsoft/onenote/FileChunkReference.java      |    0
 .../microsoft/onenote/FileDataStoreObject.java     |    0
 .../onenote/FileDataStoreObjectReference.java      |    0
 .../tika/parser/microsoft/onenote/FileNode.java    |    0
 .../parser/microsoft/onenote/FileNodeList.java     |    0
 .../microsoft/onenote/FileNodeListHeader.java      |    0
 .../tika/parser/microsoft/onenote/FileNodePtr.java |    0
 .../microsoft/onenote/FileNodePtrBackPush.java     |    0
 .../parser/microsoft/onenote/FileNodeUnion.java    |    0
 .../microsoft/onenote/FndStructureConstants.java   |    0
 .../apache/tika/parser/microsoft/onenote/GUID.java |    0
 .../microsoft/onenote/GlobalIdTableEntry2FNDX.java |    0
 .../microsoft/onenote/GlobalIdTableEntry3FNDX.java |    0
 .../microsoft/onenote/GlobalIdTableEntryFNDX.java  |    0
 .../microsoft/onenote/GlobalIdTableStartFNDX.java  |    0
 .../tika/parser/microsoft/onenote/IndentUtil.java  |   27 +
 .../tika/parser/microsoft/onenote/Int24.java       |    0
 .../apache/tika/parser/microsoft/onenote/JCID.java |    0
 .../microsoft/onenote/JCIDPropertySetTypeEnum.java |    0
 .../onenote/ObjectDeclarationWithRefCount.java     |    0
 .../onenote/ObjectDeclarationWithRefCountBody.java |    0
 .../onenote/ObjectInfoDependencyOverrideData.java  |    0
 .../onenote/ObjectInfoDependencyOverrides.java     |    0
 .../onenote/ObjectRevisionWithRefCountFNDX.java    |    0
 .../onenote/ObjectSpaceObjectPropSet.java          |    0
 ...ctSpaceObjectStreamOfOIDsOSIDsOrContextIDs.java |    0
 .../microsoft/onenote/ObjectStreamCounters.java    |    0
 .../onenote/OneNoteDirectFileResource.java         |    0
 .../parser/microsoft/onenote/OneNoteDocument.java  |    0
 .../parser/microsoft/onenote/OneNoteHeader.java    |    0
 .../onenote/OneNoteLegacyDumpStrings.java          |    0
 .../parser/microsoft/onenote/OneNoteParser.java    |  210 +++
 .../microsoft/onenote/OneNotePropertyEnum.java     |    0
 .../microsoft/onenote/OneNotePropertyId.java       |    0
 .../tika/parser/microsoft/onenote/OneNotePtr.java  | 1222 ++++++++++++++
 .../microsoft/onenote/OneNoteTreeWalker.java       |    0
 .../onenote/OneNoteTreeWalkerOptions.java          |    0
 .../parser/microsoft/onenote/PropertyIDType.java   |    0
 .../tika/parser/microsoft/onenote/PropertySet.java |    0
 .../parser/microsoft/onenote/PropertyValue.java    |    0
 .../tika/parser/microsoft/onenote/Revision.java    |    0
 .../parser/microsoft/onenote/RevisionManifest.java |    0
 .../onenote/RevisionManifestListStart.java         |    0
 .../microsoft/onenote/RevisionRoleDeclaration.java |    0
 .../microsoft/onenote/RootObjectReference.java     |    0
 .../microsoft/onenote/RootObjectReferenceBase.java |    0
 .../microsoft/ooxml/AbstractOOXMLExtractor.java    |  540 ++++++
 .../parser/microsoft/ooxml/MetadataExtractor.java  |    0
 .../parser/microsoft/ooxml/OOXMLExtractor.java     |    0
 .../microsoft/ooxml/OOXMLExtractorFactory.java     |  321 ++++
 .../tika/parser/microsoft/ooxml/OOXMLParser.java   |    0
 .../microsoft/ooxml/OOXMLTikaBodyPartHandler.java  |  391 +++++
 .../ooxml/OOXMLWordAndPowerPointTextHandler.java   |  574 +++++++
 .../ooxml/POIXMLTextExtractorDecorator.java        |   51 +
 .../microsoft/ooxml/ParagraphProperties.java       |    0
 .../tika/parser/microsoft/ooxml/RunProperties.java |    0
 .../ooxml/SXSLFPowerPointExtractorDecorator.java   |  486 ++++++
 .../ooxml/SXWPFWordExtractorDecorator.java         |    0
 .../ooxml/XSLFPowerPointExtractorDecorator.java    |  378 +++++
 .../ooxml/XSSFBExcelExtractorDecorator.java        |  161 ++
 .../ooxml/XSSFExcelExtractorDecorator.java         |  611 +++++++
 .../parser/microsoft/ooxml/XWPFListManager.java    |    0
 .../ooxml/XWPFWordExtractorDecorator.java          |  491 ++++++
 .../microsoft/ooxml/xps/XPSExtractorDecorator.java |    0
 .../microsoft/ooxml/xps/XPSPageContentHandler.java |  372 +++++
 .../microsoft/ooxml/xps/XPSTextExtractor.java      |    0
 .../xslf/XSLFEventBasedPowerPointExtractor.java    |  217 +++
 .../ooxml/xwpf/XWPFEventBasedWordExtractor.java    |  384 +++++
 .../microsoft/ooxml/xwpf/XWPFNumberingShim.java    |    0
 .../microsoft/ooxml/xwpf/XWPFStylesShim.java       |    0
 .../ooxml/xwpf/ml2006/AbstractPartHandler.java     |    0
 .../ooxml/xwpf/ml2006/BinaryDataHandler.java       |    0
 .../ooxml/xwpf/ml2006/CorePropertiesHandler.java   |    0
 .../xwpf/ml2006/ExtendedPropertiesHandler.java     |    0
 .../microsoft/ooxml/xwpf/ml2006/PartHandler.java   |    0
 .../microsoft/ooxml/xwpf/ml2006/Relationship.java  |    0
 .../ooxml/xwpf/ml2006/RelationshipsHandler.java    |    0
 .../ooxml/xwpf/ml2006/RelationshipsManager.java    |    0
 .../ooxml/xwpf/ml2006/Word2006MLDocHandler.java    |    0
 .../ooxml/xwpf/ml2006/Word2006MLParser.java        |    0
 .../ml2006/WordAndPowerPointTextPartHandler.java   |   67 +
 .../parser/microsoft/pst/OutlookPSTParser.java     |    0
 .../tika/parser/microsoft/rtf/GroupState.java      |    0
 .../tika/parser/microsoft/rtf/ListDescriptor.java  |    0
 .../parser/microsoft/rtf/RTFEmbObjHandler.java     |    0
 .../parser/microsoft/rtf/RTFObjDataParser.java     |    0
 .../tika/parser/microsoft/rtf/RTFParser.java       |    0
 .../tika/parser/microsoft/rtf/TextExtractor.java   | 1539 +++++++++++++++++
 .../microsoft/xml/AbstractXML2003Parser.java       |  132 ++
 .../parser/microsoft/xml/HyperlinkHandler.java     |    0
 .../parser/microsoft/xml/SpreadsheetMLParser.java  |  170 ++
 .../tika/parser/microsoft/xml/WordMLParser.java    |  300 ++++
 .../services/org.apache.tika.detect.Detector       |    0
 ...org.apache.tika.detect.zip.ZipContainerDetector |    0
 ....apache.tika.extractor.EmbeddedStreamTranslator |    0
 .../services/org.apache.tika.parser.Parser         |    0
 .../AbstractPOIContainerExtractionTest.java        |    0
 .../tika/parser/microsoft/EMFParserTest.java       |    0
 .../tika/parser/microsoft/ExcelParserTest.java     |  570 +++++++
 .../tika/parser/microsoft/JackcessParserTest.java  |  166 ++
 .../parser/microsoft/MSOwnerFileParserTest.java    |    0
 .../tika/parser/microsoft/OfficeParserTest.java    |    0
 .../tika/parser/microsoft/OldExcelParserTest.java  |    0
 .../tika/parser/microsoft/OutlookParserTest.java   |    0
 .../microsoft/POIContainerExtractionTest.java      |    0
 .../parser/microsoft/PowerPointParserTest.java     |    0
 .../tika/parser/microsoft/ProjectParserTest.java   |    0
 .../tika/parser/microsoft/PublisherParserTest.java |    0
 .../parser/microsoft/SolidworksParserTest.java     |    0
 .../tika/parser/microsoft/TNEFParserTest.java      |    0
 .../tika/parser/microsoft/VisioParserTest.java     |    0
 .../tika/parser/microsoft/WMFParserTest.java       |    0
 .../tika/parser/microsoft/WordParserTest.java      |    0
 .../parser/microsoft/WriteProtectedParserTest.java |    0
 .../parser/microsoft/chm/TestChmBlockInfo.java     |    0
 .../parser/microsoft/chm/TestChmExtraction.java    |  238 +++
 .../parser/microsoft/chm/TestChmExtractor.java     |    0
 .../parser/microsoft/chm/TestChmItsfHeader.java    |    0
 .../parser/microsoft/chm/TestChmItspHeader.java    |    0
 .../tika/parser/microsoft/chm/TestChmLzxState.java |    0
 .../microsoft/chm/TestChmLzxcControlData.java      |    0
 .../microsoft/chm/TestChmLzxcResetTable.java       |    0
 .../microsoft/chm/TestDirectoryListingEntry.java   |    0
 .../tika/parser/microsoft/chm/TestParameters.java  |    0
 .../tika/parser/microsoft/chm/TestPmgiHeader.java  |    0
 .../tika/parser/microsoft/chm/TestPmglHeader.java  |    0
 .../microsoft/onenote/OneNoteParserTest.java       |    0
 .../ooxml/OOXMLContainerExtractionTest.java        |    0
 .../parser/microsoft/ooxml/OOXMLParserTest.java    | 1743 ++++++++++++++++++++
 .../parser/microsoft/ooxml/SXSLFExtractorTest.java |  608 +++++++
 .../parser/microsoft/ooxml/SXWPFExtractorTest.java |  853 ++++++++++
 .../parser/microsoft/ooxml/TruncatedOOXMLTest.java |    0
 .../parser/microsoft/ooxml/xps/XPSParserTest.java  |    0
 .../ooxml/xwpf/ml2006/Word2006MLParserTest.java    |  191 +++
 .../parser/microsoft/pst/OutlookPSTParserTest.java |  168 ++
 .../tika/parser/microsoft/rtf/RTFParserTest.java   |  496 ++++++
 .../parser/microsoft/xml/XML2003ParserTest.java    |   78 +
 .../ooxml}/tika-config-custom-date-override.xml    |    0
 .../microsoft/ooxml/tika-config-dom-macros.xml     |    0
 .../microsoft/ooxml/tika-config-sax-macros.xml     |    0
 .../microsoft/rtf/ignoreListMarkup-tika-config.xml |    0
 .../tika/parser/microsoft/rtf/tika-config.xml      |    0
 .../tika-config-custom-date-override.xml           |    0
 .../microsoft/tika-config-exclude-phonetic.xml     |    0
 .../tika-config-extract-all-alternatives-msg.xml   |    0
 .../tika/parser/microsoft/tika-config-macros.xml   |    0
 .../tika/parser/microsoft/tika-config-sax-docx.xml |    0
 .../src/test/resources/test-documents/Doc1_ole.doc |  Bin
 .../resources/test-documents/EmbeddedDocument.docx |  Bin
 .../resources/test-documents/EmbeddedOutlook.docx  |  Bin
 .../test/resources/test-documents/EmbeddedPDF.docx |  Bin
 .../test/resources/test-documents/NullHeader.docx  |  Bin
 .../test/resources/test-documents/chm/IMJPCL.CHM   |  Bin
 .../test/resources/test-documents/chm/IMJPCLE.CHM  |  Bin
 .../test/resources/test-documents/chm/IMTCEN.CHM   |  Bin
 .../test/resources/test-documents/chm/admin.chm    |  Bin
 .../test/resources/test-documents/chm/cmak_ops.CHM |  Bin
 .../test/resources/test-documents/chm/comexp.CHM   |  Bin
 .../test/resources/test-documents/chm/gpedit.CHM   |  Bin
 .../test/resources/test-documents/chm/tcpip.CHM    |  Bin
 .../resources/test-documents/chm/wmicontrol.CHM    |  Bin
 .../test/resources/test-documents/footnotes.docx   |  Bin
 .../test/resources/test-documents/headerPic.docx   |  Bin
 .../src/test/resources/test-documents/jxl.xls      |  Bin
 .../src/test/resources/test-documents/pictures.ppt |  Bin
 .../src/test/resources/test-documents/protect.xlsx |  Bin
 .../resources/test-documents/protectedFile.xlsx    |  Bin
 .../resources/test-documents/protectedSheets.xlsx  |  Bin
 .../resources/test-documents/test-columnar.xls     |  Bin
 .../resources/test-documents/test-columnar.xlsb    |  Bin
 .../resources/test-documents/test-columnar.xlsx    |  Bin
 .../test/resources/test-documents/test-outlook.msg |  Bin
 .../resources/test-documents/test-outlook2003.msg  |  Bin
 .../src/test/resources/test-documents/test.doc     |  Bin
 .../test/resources/test-documents/testACCESS.mdb   |  Bin
 .../resources/test-documents/testAccess2.accdb     |  Bin
 .../resources/test-documents/testAccess2_2000.mdb  |  Bin
 .../test-documents/testAccess2_2002-2003.mdb       |  Bin
 .../test-documents/testAccess2_encrypted.accdb     |  Bin
 .../resources/test-documents/testAccess_V1997.mdb  |  Bin
 .../test-documents/testBinControlWord.rtf          |    0
 .../src/test/resources/test-documents/testChm.chm  |  Bin
 .../src/test/resources/test-documents/testChm2.chm |  Bin
 .../src/test/resources/test-documents/testChm3.chm |  Bin
 .../test/resources/test-documents/testChm_oom.chm  |  Bin
 .../test/resources/test-documents/testComment.doc  |  Bin
 .../test/resources/test-documents/testComment.docx |  Bin
 .../test/resources/test-documents/testComment.ppt  |  Bin
 .../test/resources/test-documents/testComment.pptx |  Bin
 .../test/resources/test-documents/testComment.rtf  |    0
 .../test/resources/test-documents/testComment.xls  |  Bin
 .../test/resources/test-documents/testComment.xlsx |  Bin
 .../test-documents/testControlCharacters.doc       |  Bin
 .../test-documents/testDOCX_Thumbnail.docx         |  Bin
 .../test/resources/test-documents/testDOTM.dotm    |  Bin
 .../resources/test-documents/testDocumentLink.doc  |  Bin
 .../src/test/resources/test-documents/testEMF.emf  |  Bin
 .../test/resources/test-documents/testEMLX.emlx    |    0
 .../testEML_embedded_xhtml_and_img.eml             |    0
 .../resources/test-documents/testEXCEL-charts.xls  |  Bin
 .../resources/test-documents/testEXCEL-formats.xls |  Bin
 .../test-documents/testEXCEL-formats.xlsx          |  Bin
 .../resources/test-documents/testEXCEL.strict.xlsx |  Bin
 .../test/resources/test-documents/testEXCEL.xls    |  Bin
 .../test/resources/test-documents/testEXCEL.xlsb   |  Bin
 .../test/resources/test-documents/testEXCEL.xlsx   |  Bin
 .../resources/test-documents/testEXCEL2003.xml     |    0
 .../resources/test-documents/testEXCEL_1img.xls    |  Bin
 .../resources/test-documents/testEXCEL_1img.xlsx   |  Bin
 .../test/resources/test-documents/testEXCEL_4.xls  |  Bin
 .../test/resources/test-documents/testEXCEL_5.xls  |  Bin
 .../test/resources/test-documents/testEXCEL_95.xls |  Bin
 .../testEXCEL_WORKBOOK_in_capitals.xls             |  Bin
 .../test-documents/testEXCEL_big_numbers.xls       |  Bin
 .../test-documents/testEXCEL_big_numbers.xlsx      |  Bin
 .../resources/test-documents/testEXCEL_charts.xlsb |  Bin
 .../resources/test-documents/testEXCEL_charts.xlsx |  Bin
 .../test-documents/testEXCEL_custom_props.xls      |  Bin
 .../test-documents/testEXCEL_custom_props.xlsx     |  Bin
 .../test-documents/testEXCEL_dateFormats.xls       |  Bin
 .../test-documents/testEXCEL_dateFormats.xlsx      |  Bin
 .../test-documents/testEXCEL_diagramData.xlsb      |  Bin
 .../test-documents/testEXCEL_diagramData.xlsx      |  Bin
 .../test-documents/testEXCEL_embeddedPDF_mac.xls   |  Bin
 .../test-documents/testEXCEL_embeddedPDF_mac.xlsx  |  Bin
 .../testEXCEL_embeddedPDF_windows.xls              |  Bin
 .../testEXCEL_embeddedPDF_windows.xlsx             |  Bin
 .../resources/test-documents/testEXCEL_embeded.xls |  Bin
 .../test-documents/testEXCEL_embeded.xlsx          |  Bin
 .../test-documents/testEXCEL_headers_footers.xls   |  Bin
 .../test-documents/testEXCEL_headers_footers.xlsx  |  Bin
 .../test-documents/testEXCEL_hyperlinks.xls        |  Bin
 .../test-documents/testEXCEL_hyperlinks.xlsx       |  Bin
 .../testEXCEL_labels-govdocs-515858.xls            |  Bin
 .../resources/test-documents/testEXCEL_macro.xls   |  Bin
 .../resources/test-documents/testEXCEL_macro.xlsm  |  Bin
 .../testEXCEL_macro_enabled_template.xltm          |  Bin
 .../test-documents/testEXCEL_phonetic.xls          |  Bin
 .../test-documents/testEXCEL_phonetic.xlsx         |  Bin
 .../test-documents/testEXCEL_poi-61034.xlsx        |  Bin
 .../resources/test-documents/testEXCEL_poi.xlsx    |  Bin
 .../testEXCEL_protected_passtika.xls               |  Bin
 .../testEXCEL_protected_passtika.xlsx              |  Bin
 .../testEXCEL_protected_passtika_2.xlsx            |  Bin
 .../resources/test-documents/testEXCEL_signed.xlsx |  Bin
 .../test-documents/testEXCEL_template.xlt          |  Bin
 .../test-documents/testEXCEL_template.xltx         |  Bin
 .../resources/test-documents/testEXCEL_textbox.xls |  Bin
 .../test-documents/testEXCEL_textbox.xlsx          |  Bin
 .../test-documents/testEXCEL_various.xlsb          |  Bin
 .../test-documents/testExcel_embeddedPDF.xls       |  Bin
 .../test-documents/testExcel_embeddedPDF.xlsx      |  Bin
 .../resources/test-documents/testException1.doc    |  Bin
 .../resources/test-documents/testException2.doc    |  Bin
 .../test-documents/testFontAfterBufferedText.rtf   |    0
 .../test-documents/testMSChart-govdocs-428996.ppt  |  Bin
 .../test-documents/testMSChart-govdocs-428996.pptx |  Bin
 .../test-documents/testMSChart-govdocs-428996.xls  |  Bin
 .../test-documents/testMSChart-govdocs-428996.xlsx |  Bin
 .../testMSEquation-govdocs-863534.doc              |  Bin
 .../src/test/resources/test-documents/testMSG.msg  |  Bin
 .../test-documents/testMSG_Appointment.msg         |  Bin
 .../resources/test-documents/testMSG_Contact.msg   |  Bin
 .../test/resources/test-documents/testMSG_Post.msg |  Bin
 .../test-documents/testMSG_StickyNote.msg          |  Bin
 .../test/resources/test-documents/testMSG_Task.msg |  Bin
 .../resources/test-documents/testMSG_att_doc.msg   |  Bin
 .../resources/test-documents/testMSG_att_msg.msg   |  Bin
 .../resources/test-documents/testMSG_chinese.msg   |  Bin
 .../resources/test-documents/testMSG_forwarded.msg |  Bin
 .../test/resources/test-documents/testMSOwnerFile  |  Bin
 .../test/resources/test-documents/testOneNote.one  |  Bin
 .../test/resources/test-documents/testOneNote1.one |  Bin
 .../test/resources/test-documents/testOneNote2.one |  Bin
 .../test-documents/testOneNote2007OrEarlier1.one   |  Bin
 .../test-documents/testOneNote2007OrEarlier2.one   |  Bin
 .../resources/test-documents/testOneNote2016.one   |  Bin
 .../test/resources/test-documents/testOneNote3.one |  Bin
 .../test/resources/test-documents/testOneNote4.one |  Bin
 .../test-documents/testOneNoteEmbeddedWordDoc.one  |  Bin
 .../src/test/resources/test-documents/testPPM.ppm  |    0
 .../src/test/resources/test-documents/testPPT.potm |  Bin
 .../src/test/resources/test-documents/testPPT.ppsm |  Bin
 .../src/test/resources/test-documents/testPPT.ppsx |  Bin
 .../src/test/resources/test-documents/testPPT.ppt  |  Bin
 .../src/test/resources/test-documents/testPPT.pptm |  Bin
 .../test/resources/test-documents}/testPPT.pptx    |  Bin
 .../src/test/resources/test-documents/testPPT.thmx |  Bin
 .../src/test/resources/test-documents/testPPT.xps  |  Bin
 .../test-documents/testPPTX_Thumbnail.pptx         |  Bin
 .../testPPTX_overlappingRelations.pptx             |  Bin
 .../resources/test-documents/testPPT_2imgs.ppt     |  Bin
 .../resources/test-documents/testPPT_2imgs.pptx    |  Bin
 .../test-documents/testPPT_EmbeddedPDF.ppt         |  Bin
 .../test-documents/testPPT_EmbeddedPDF.pptx        |  Bin
 .../resources/test-documents/testPPT_autodate.ppt  |  Bin
 .../resources/test-documents/testPPT_autodate.pptx |  Bin
 .../resources/test-documents/testPPT_charts.pptx   |  Bin
 .../resources/test-documents/testPPT_comment.ppt   |  Bin
 .../resources/test-documents/testPPT_comment.pptx  |  Bin
 .../test-documents/testPPT_custom_props.ppt        |  Bin
 .../test-documents/testPPT_custom_props.pptx       |  Bin
 .../test-documents/testPPT_diagramData.pptx        |  Bin
 .../resources/test-documents/testPPT_embedded2.ppt |  Bin
 .../test-documents/testPPT_embeddedMP3.pptx        |  Bin
 .../testPPT_embedded_two_slides.pptx               |  Bin
 .../resources/test-documents/testPPT_embeded.ppt   |  Bin
 .../resources/test-documents/testPPT_embeded.pptx  |  Bin
 .../resources/test-documents/testPPT_groups.ppt    |  Bin
 .../resources/test-documents/testPPT_groups.pptx   |  Bin
 .../resources/test-documents/testPPT_macros.ppt    |  Bin
 .../resources/test-documents/testPPT_macros.pptm   |  Bin
 .../test-documents/testPPT_masterFooter.ppt        |  Bin
 .../test-documents/testPPT_masterFooter.pptx       |  Bin
 .../test-documents/testPPT_masterText.ppt          |  Bin
 .../test-documents/testPPT_masterText.pptx         |  Bin
 .../test-documents/testPPT_masterText2.ppt         |  Bin
 .../test-documents/testPPT_masterText2.pptx        |  Bin
 .../test-documents/testPPT_oleWorkbook.ppt         |  Bin
 .../test-documents/testPPT_oleWorkbook.pptx        |  Bin
 .../test-documents/testPPT_protected_passtika.ppt  |  Bin
 .../test-documents/testPPT_protected_passtika.pptx |  Bin
 .../resources/test-documents/testPPT_signed.pptx   |  Bin
 .../testPPT_skipBadCompressedObject.ppt            |  Bin
 .../resources/test-documents/testPPT_various.ppt   |  Bin
 .../resources/test-documents/testPPT_various.pptx  |  Bin
 .../resources/test-documents/testPPT_various2.pptx |  Bin
 .../resources/test-documents/testPROJECT2003.mpp   |  Bin
 .../resources/test-documents/testPROJECT2007.mpp   |  Bin
 .../src/test/resources/test-documents/testPST.pst  |  Bin
 .../test-documents/testPST_variousBodyTypes.pst    |  Bin
 .../resources/test-documents/testPUBLISHER.pub     |  Bin
 .../resources/test-documents/testRTF-ms932.rtf     |    0
 .../src/test/resources/test-documents/testRTF.rtf  |    0
 .../resources/test-documents/testRTFBoldItalic.rtf |    0
 .../resources/test-documents/testRTFBoldPlain.rtf  |    0
 .../resources/test-documents/testRTFControls.rtf   |    0
 .../test-documents/testRTFCorruptListOverride.rtf  |    0
 .../test-documents/testRTFEmbeddedFiles.rtf        |    0
 .../test-documents/testRTFEmbeddedLink.rtf         |    0
 .../test-documents/testRTFHexEscapeInsideWord.rtf  |    0
 .../resources/test-documents/testRTFHyperlink.rtf  |    0
 .../test-documents/testRTFIgnoredControlWord.rtf   |    0
 .../test-documents/testRTFInvalidUnicode.rtf       |    0
 .../resources/test-documents/testRTFJapanese.rtf   |    0
 .../test-documents/testRTFListLibreOffice.rtf      |    0
 .../test-documents/testRTFListMicrosoftWord.rtf    |    0
 .../test-documents/testRTFListOverride.rtf         |    0
 .../resources/test-documents/testRTFNewlines.rtf   |    0
 .../test-documents/testRTFRegularImages.rtf        |    0
 .../resources/test-documents/testRTFTIKA_1713.rtf  |    0
 .../resources/test-documents/testRTFTIKA_2150.rtf  |    0
 .../resources/test-documents/testRTFTIKA_2500.rtf  |    0
 .../resources/test-documents/testRTFTIKA_2883.rtf  |  Bin
 .../resources/test-documents/testRTFTIKA_2899.rtf  |    0
 .../test-documents/testRTFTableCellSeparation.rtf  |    0
 .../test-documents/testRTFTableCellSeparation2.rtf |    0
 .../test-documents/testRTFUmlautSpaces.rtf         |    0
 .../test-documents/testRTFUmlautSpaces2.rtf        |    0
 .../test-documents/testRTFUnicodeGothic.rtf        |    0
 ...stRTFUnicodeUCNControlWordCharacterDoubling.rtf |    0
 .../resources/test-documents/testRTFVarious.rtf    |    0
 .../test-documents/testRTFWindowsCodepage1250.rtf  |    0
 .../test-documents/testRTFWithCurlyBraces.rtf      |    0
 .../testRTFWord2010CzechCharacters.rtf             |    0
 .../testRTFWordPadCzechCharacters.rtf              |    0
 .../test-documents/testRTF_annotation_spacing.rtf  |    0
 .../test/resources/test-documents/testVISIO.vsd    |  Bin
 .../test/resources/test-documents/testVISIO.vsdm   |  Bin
 .../test/resources/test-documents/testVISIO.vsdx   |  Bin
 .../test/resources/test-documents/testVISIO.vssm   |  Bin
 .../test/resources/test-documents/testVISIO.vssx   |  Bin
 .../test/resources/test-documents/testVISIO.vstm   |  Bin
 .../test/resources/test-documents/testVISIO.vstx   |  Bin
 .../test/resources/test-documents/testWINMAIL.dat  |  Bin
 .../src/test/resources/test-documents/testWMF.wmf  |  Bin
 .../resources/test-documents/testWMF_charset.wmf   |  Bin
 .../src/test/resources/test-documents/testWORD.doc |  Bin
 .../test/resources/test-documents/testWORD.docx    |  Bin
 .../test/resources/test-documents/testWORD2003.xml |    0
 .../test/resources/test-documents/testWORD6.doc    |  Bin
 .../resources/test-documents/testWORD_1img.doc     |  Bin
 .../resources/test-documents/testWORD_1img.docx    |  Bin
 .../resources/test-documents/testWORD_2003ml.xml   |    0
 .../resources/test-documents/testWORD_2006ml.doc   |  Bin
 .../resources/test-documents/testWORD_2006ml.docx  |  Bin
 .../resources/test-documents/testWORD_2006ml.xml   |    0
 .../resources/test-documents/testWORD_3imgs.doc    |  Bin
 .../resources/test-documents/testWORD_3imgs.docx   |  Bin
 .../test-documents/testWORD_boldHyperlink.doc      |  Bin
 .../test-documents/testWORD_boldHyperlink.docx     |  Bin
 .../testWORD_bold_character_runs.doc               |  Bin
 .../testWORD_bold_character_runs.docx              |  Bin
 .../testWORD_bold_character_runs2.doc              |  Bin
 .../testWORD_bold_character_runs2.docx             |  Bin
 .../resources/test-documents/testWORD_charts.docx  |  Bin
 .../testWORD_closingSmartQInHyperLink.doc          |  Bin
 .../test-documents/testWORD_custom_props.doc       |  Bin
 .../test-documents/testWORD_custom_props.docx      |  Bin
 .../test-documents/testWORD_diagramData.docx       |  Bin
 .../test-documents/testWORD_docSecurity.docx       |  Bin
 .../test-documents/testWORD_embedded_pdf.doc       |  Bin
 .../test-documents/testWORD_embedded_pdf.docx      |  Bin
 .../test-documents/testWORD_embedded_pics.docx     |  Bin
 .../test-documents/testWORD_embedded_rtf.doc       |  Bin
 .../resources/test-documents/testWORD_embeded.doc  |  Bin
 .../resources/test-documents/testWORD_embeded.docx |  Bin
 .../test-documents/testWORD_header_hyperlink.doc   |  Bin
 .../testWORD_italicsSurroundingHyperlink.doc       |  Bin
 .../resources/test-documents/testWORD_macros.doc   |  Bin
 .../resources/test-documents/testWORD_macros.docm  |  Bin
 .../testWORD_missing_ooxml_bean1.docx              |  Bin
 .../test-documents/testWORD_missing_text.docx      |  Bin
 .../test-documents/testWORD_multi_authors.doc      |  Bin
 .../test-documents/testWORD_multi_authors.docx     |  Bin
 .../test-documents/testWORD_no_format.doc          |  Bin
 .../test-documents/testWORD_no_format.docx         |  Bin
 .../test-documents/testWORD_null_style.docx        |  Bin
 .../test-documents/testWORD_numbered_list.doc      |  Bin
 .../test-documents/testWORD_numbered_list.docx     |  Bin
 .../testWORD_override_list_numbering.doc           |  Bin
 .../testWORD_override_list_numbering.docx          |  Bin
 .../resources/test-documents/testWORD_phonetic.doc |  Bin
 .../test-documents/testWORD_phonetic.docx          |  Bin
 .../test-documents/testWORD_protected_passtika.doc |  Bin
 .../testWORD_protected_passtika.docx               |  Bin
 .../test-documents/testWORD_sdtInTextBox.docx      |  Bin
 .../resources/test-documents/testWORD_signed.docx  |  Bin
 .../testWORD_specialControlCharacter1415.doc       |  Bin
 .../test-documents/testWORD_tabular_symbol.doc     |  Bin
 .../test-documents/testWORD_template.docx          |  Bin
 .../test-documents/testWORD_template.dotx          |  Bin
 .../test-documents/testWORD_text_box.docx          |  Bin
 .../testWORD_totalTimeOutOfRange.docx              |  Bin
 .../test-documents/testWORD_truncated.docx         |  Bin
 .../resources/test-documents/testWORD_various.doc  |  Bin
 .../resources/test-documents/testWORD_various.docx |  Bin
 .../test-documents/testWORKSSpreadsheet7.0.xlr     |  Bin
 .../test/resources/test-documents/testWordArt.pptx |  Bin
 .../test-documents/testXLSX_Thumbnail.xlsx         |  Bin
 .../test-documents/testXPSWithDataDescriptor.xps   |  Bin
 .../test-documents/testXPSWithDataDescriptor2.xps  |  Bin
 .../resources/test-documents/testXPS_various.xps   |  Bin
 .../test-documents/testZIP_corrupted_oom.zip       |  Bin
 .../resources/test-documents/test_TIKA-1251.doc    |  Bin
 .../test-documents/test_embedded_zip.pptx          |  Bin
 .../test-documents/test_list_override.rtf          |    0
 .../test-documents/test_recursive_embedded.doc     |  Bin
 .../test-documents/test_recursive_embedded.docx    |  Bin
 .../test_recursive_embedded_npe.docx               |  Bin
 .../testsolidworksAssembly2013SP2.SLDASM           |  Bin
 .../testsolidworksAssembly2014SP0.SLDASM           |  Bin
 .../testsolidworksDrawing2013SP2.SLDDRW            |  Bin
 .../testsolidworksDrawing2014SP0.SLDDRW            |  Bin
 .../testsolidworksPart2013SP2.SLDPRT               |  Bin
 .../testsolidworksPart2014SP0.SLDPRT               |  Bin
 .../tika-parser-miscoffice-module/pom.xml          |   97 ++
 .../apache/tika/detect/ole/MiscOLEDetector.java    |  215 +++
 .../java/org/apache/tika/parser/dbf/DBFCell.java   |    0
 .../apache/tika/parser/dbf/DBFColumnHeader.java    |    0
 .../org/apache/tika/parser/dbf/DBFFileHeader.java  |    0
 .../java/org/apache/tika/parser/dbf/DBFParser.java |    0
 .../java/org/apache/tika/parser/dbf/DBFReader.java |    0
 .../java/org/apache/tika/parser/dbf/DBFRow.java    |    0
 .../apache/tika/parser/dif/DIFContentHandler.java  |  149 ++
 .../java/org/apache/tika/parser/dif/DIFParser.java |   85 +
 .../apache/tika/parser/epub/EpubContentParser.java |    0
 .../org/apache/tika/parser/epub/EpubParser.java    |  486 ++++++
 .../apache/tika/parser/hwp/HwpStreamReader.java    |    0
 .../apache/tika/parser/hwp/HwpTextExtractorV5.java |  494 ++++++
 .../org/apache/tika/parser/hwp/HwpV5Parser.java    |    0
 .../apache/tika/parser/mif/MIFContentHandler.java  |    0
 .../org/apache/tika/parser/mif/MIFExtractor.java   |    0
 .../java/org/apache/tika/parser/mif/MIFParser.java |    0
 .../parser/odf/FlatOpenDocumentMacroHandler.java   |    0
 .../tika/parser/odf/FlatOpenDocumentParser.java    |    0
 .../parser/odf/NSNormalizerContentHandler.java     |    0
 .../tika/parser/odf/OpenDocumentBodyHandler.java   |  564 +++++++
 .../tika/parser/odf/OpenDocumentContentParser.java |    0
 .../tika/parser/odf/OpenDocumentMacroHandler.java  |    0
 .../parser/odf/OpenDocumentManifestHandler.java    |    0
 .../tika/parser/odf/OpenDocumentMetaParser.java    |    0
 .../apache/tika/parser/odf/OpenDocumentParser.java |  369 +++++
 .../tika/parser/wordperfect/QPWTextExtractor.java  |  242 +++
 .../tika/parser/wordperfect/QuattroProParser.java  |    0
 .../tika/parser/wordperfect/WP5Charsets.java       |    0
 .../wordperfect/WP5DocumentAreaExtractor.java      |  111 ++
 .../tika/parser/wordperfect/WP6Charsets.java       |    0
 .../wordperfect/WP6DocumentAreaExtractor.java      |  172 ++
 .../wordperfect/WPDocumentAreaExtractor.java       |    0
 .../tika/parser/wordperfect/WPInputStream.java     |  235 +++
 .../tika/parser/wordperfect/WPPrefixArea.java      |    0
 .../parser/wordperfect/WPPrefixAreaExtractor.java  |    0
 .../tika/parser/wordperfect/WordPerfectParser.java |    0
 .../services/org.apache.tika.detect.Detector       |    0
 .../services/org.apache.tika.parser.Parser         |    0
 .../org/apache/tika/parser/dbf/DBFParserTest.java  |    0
 .../org/apache/tika/parser/dif/DIFParserTest.java  |    0
 .../apache/tika/parser/epub/EpubParserTest.java    |    0
 .../apache/tika/parser/hwp/HwpV5ParserTest.java    |    0
 .../tika/parser/ibooks/iBooksParserTest.java       |    0
 .../org/apache/tika/parser/mif/MIFParserTest.java  |    0
 .../org/apache/tika/parser/odf/ODFParserTest.java  |    0
 .../tika/parser/wordperfect/QuattroProTest.java    |    0
 .../tika/parser/wordperfect/WPInputStreamTest.java |    0
 .../tika/parser/wordperfect/WordPerfectTest.java   |    0
 .../org/apache/tika/parser/epub/tika-config.xml    |    0
 .../apache/tika/parser/odf/tika-config-macros.xml  |    0
 .../apache/tika/parser/wordperfect/tika-config.xml |    0
 .../test/resources/test-documents/Zamora2010.dif   |    0
 .../src/test/resources/test-documents/testDBF.dbf  |  Bin
 .../resources/test-documents/testDBF_gb18030.dbf   |  Bin
 .../test/resources/test-documents/testEPUB.epub    |  Bin
 .../resources/test-documents/testEPUB_xml_ext.epub |  Bin
 .../test/resources/test-documents/testFooter.ods   |  Bin
 .../test/resources/test-documents/testFooter.odt   |  Bin
 .../resources/test-documents/testFramemakerMif.mif |    0
 .../resources/test-documents/testHWP-v5-dist.hwp   |  Bin
 .../test/resources/test-documents/testHWP-v5b.hwp  |  Bin
 .../test/resources/test-documents/testHWP_3.0.hwp  |  Bin
 .../test/resources/test-documents/testHWP_5.0.hwp  |  Bin
 .../src/test/resources/test-documents/testMIF.mif  |  Bin
 .../resources/test-documents/testMasterFooter.odp  |  Bin
 .../test-documents/testNPEOpenDocument.odt         |  Bin
 .../resources/test-documents/testODFwithOOo3.odt   |  Bin
 .../resources/test-documents/testODPMacro.fodp     |    0
 .../test/resources/test-documents/testODPMacro.odp |  Bin
 .../test/resources/test-documents/testODP_NPE.odp  |  Bin
 .../resources/test-documents/testODSMacro.fods     |    0
 .../test/resources/test-documents/testODSMacro.ods |  Bin
 .../resources/test-documents/testODT-TIKA-6000.odt |  Bin
 .../resources/test-documents/testODTEmbedded.odt   |  Bin
 .../test-documents/testODTEmbeddedImageLink.odt    |  Bin
 .../resources/test-documents/testODTEncrypted.odt  |  Bin
 .../resources/test-documents/testODTMacro.fodt     |    0
 .../test/resources/test-documents/testODTMacro.odt |  Bin
 .../resources/test-documents/testODTNoMeta.odt     |  Bin
 .../resources/test-documents/testODTStyles2.odt    |  Bin
 .../resources/test-documents/testODTStyles3.odt    |  Bin
 .../test-documents/testODTnotaZipFile.odt          |    0
 .../test-documents/testOpenOffice-autotext.bau     |  Bin
 .../test-documents/testOpenOffice-extension.oxt    |  Bin
 .../resources/test-documents/testOpenOffice2.odf   |  Bin
 .../resources/test-documents/testOpenOffice2.odt   |  Bin
 .../test-documents/testOpenOfficeInAZip.zip        |  Bin
 .../test/resources/test-documents/testQUATTRO.qpw  |  Bin
 .../test/resources/test-documents/testQUATTRO.wb3  |  Bin
 .../test/resources/test-documents/testQuattro.wb1  |  Bin
 .../test/resources/test-documents/testQuattro.wb2  |  Bin
 .../test/resources/test-documents/testQuattro.wq1  |  Bin
 .../test/resources/test-documents/testQuattro.wq2  |  Bin
 .../test/resources/test-documents/testStyles.odt   |  Bin
 .../resources/test-documents/testWordPerfect.wpd   |  Bin
 .../test-documents/testWordPerfect_42.doc          |  Bin
 .../test-documents/testWordPerfect_5_0.wp          |  Bin
 .../test-documents/testWordPerfect_5_1.wp          |  Bin
 .../resources/test-documents/testiBooks.ibooks     |  Bin
 .../tika-parser-news-module/pom.xml                |   71 +
 .../org/apache/tika/parser/feed/FeedParser.java    |  129 ++
 .../apache/tika/parser/iptc/IptcAnpaParser.java    |  869 ++++++++++
 .../services/org.apache.tika.parser.Parser         |    0
 .../apache/tika/parser/feed/FeedParserTest.java    |    0
 .../test/resources/test-documents/rsstest_091.rss  |    0
 .../test/resources/test-documents/rsstest_20.rss   |    0
 .../test/resources/test-documents/testATOM.atom    |    0
 .../tika-parser-ocr-module/pom.xml                 |   71 +
 .../apache/tika/parser/ocr/ImagePreprocessor.java  |    0
 .../apache/tika/parser/ocr/TesseractOCRConfig.java |    0
 .../apache/tika/parser/ocr/TesseractOCRParser.java |  797 +++++++++
 .../apache/tika/parser/ocr/tess4j/ImageDeskew.java |    0
 .../apache/tika/parser/ocr/tess4j/ImageUtil.java   |    0
 .../services/org.apache.tika.parser.Parser         |    0
 .../tika/parser/ocr/TesseractOCRConfigTest.java    |    0
 .../tika/parser/ocr/TesseractOCRParserTest.java    |  319 ++++
 .../resources/test-configs/TIKA-2705-tesseract.xml |    0
 .../tika-config-tesseract-arbitrary.xml            |    0
 .../test-configs/tika-config-tesseract-full.xml    |    0
 .../tika-config-tesseract-load-langs.xml           |    0
 .../test-configs/tika-config-tesseract-partial.xml |    0
 .../src/test/resources/test-documents/testOCR.docx |  Bin
 .../src/test/resources/test-documents}/testOCR.jpg |  Bin
 .../src/test/resources/test-documents/testOCR.pptx |  Bin
 .../resources/test-documents/testOCR_spacing.png   |  Bin
 .../resources/test-documents/testRotated+10.png    |  Bin
 .../resources/test-documents/testRotated-10.png    |  Bin
 .../test-documents/testTIFF_multipage.tif          |  Bin
 .../tika-parser-pdf-module/pom.xml                 |  111 ++
 .../apache/tika/parser/pdf/AbstractPDF2XHTML.java  | 1088 ++++++++++++
 .../org/apache/tika/parser/pdf/AccessChecker.java  |    0
 .../tika/parser/pdf/ImageGraphicsEngine.java       |  491 ++++++
 .../java/org/apache/tika/parser/pdf/OCR2XHTML.java |    0
 .../java/org/apache/tika/parser/pdf/PDF2XHTML.java |  331 ++++
 .../org/apache/tika/parser/pdf/PDFDOMUtil.java     |   82 +
 .../tika/parser/pdf/PDFEncodedStringDecoder.java   |  119 ++
 .../tika/parser/pdf/PDFMarkedContent2XHTML.java    |    0
 .../java/org/apache/tika/parser/pdf/PDFParser.java |  673 ++++++++
 .../apache/tika/parser/pdf/PDFParserConfig.java    |    0
 .../apache/tika/parser/pdf/PDFPreflightParser.java |    0
 .../tika/parser/pdf/PDMetadataExtractor.java       |    0
 .../org/apache/tika/parser/pdf/XFAExtractor.java   |  311 ++++
 .../services/org.apache.tika.parser.Parser         |    0
 .../apache/tika/parser/pdf/AccessCheckerTest.java  |    0
 .../parser/pdf/PDFMarkedContent2XHTMLTest.java     |    0
 .../org/apache/tika/parser/pdf/PDFParserTest.java  | 1387 ++++++++++++++++
 .../tika/parser/pdf/PDFPreflightParserTest.java    |    0
 .../tika/parser/pdf/tika-config-non-primitives.xml |    0
 .../org/apache/tika/parser/pdf/tika-config.xml     |    0
 .../apache/tika/parser/pdf/tika-inline-config.xml  |    0
 .../org/apache/tika/parser/pdf/tika-ocr-config.xml |    0
 .../tika/parser/pdf/tika-preflight-config.xml      |    0
 .../tika/parser/pdf/tika-xml-profiler-config.xml   |    0
 .../resources/test-documents/testAnnotations.pdf   |  Bin
 .../resources/test-documents/testExtraSpaces.pdf   |  Bin
 .../resources/test-documents/testFlashInPDF.pdf    |  Bin 0 -> 161445 bytes
 .../resources/test-documents/testJournalParser.pdf |  Bin
 .../src/test/resources/test-documents/testOCR.pdf  |  Bin
 .../test-documents/testOptionalHyphen.pdf          |  Bin
 .../test-documents/testOverlappingText.pdf         |  Bin
 .../test-documents/testPDF-custommetadata.pdf      |  Bin
 .../src/test/resources/test-documents/testPDF.pdf  |  Bin
 .../testPDFEmbeddingAndEmbedded.docx               |  Bin
 .../test-documents/testPDFFileEmbInAnnotation.pdf  |  Bin
 .../testPDFFileEmbInAnnotation_noContents.pdf      |    0
 .../resources/test-documents/testPDFPackage.pdf    |  Bin
 .../test-documents/testPDFTripleLangTitle.pdf      |  Bin
 .../test-documents/testPDFTwoTextBoxes.pdf         |  Bin
 .../resources/test-documents/testPDFVarious.pdf    |  Bin
 .../resources/test-documents/testPDF_JBIG2.pdf     |  Bin
 .../testPDF_PDFEncodedStringInXMP.pdf              |  Bin
 .../test-documents/testPDF_Version.10.x.pdf        |  Bin
 .../testPDF_Version.11.x.PDFA-1b.pdf               |  Bin
 .../test-documents/testPDF_Version.4.x.pdf         |  Bin
 .../test-documents/testPDF_Version.5.x.pdf         |  Bin
 .../test-documents/testPDF_Version.6.x.pdf         |  Bin
 .../test-documents/testPDF_Version.7.x.pdf         |  Bin
 .../test-documents/testPDF_Version.8.x.pdf         |  Bin
 .../test-documents/testPDF_Version.9.x.pdf         |  Bin
 .../test-documents/testPDF_XFA_govdocs1_258578.pdf |  Bin
 .../test-documents/testPDF_XMPBasicSchema.pdf      |  Bin
 .../resources/test-documents/testPDF_acroform3.pdf |  Bin
 .../resources/test-documents/testPDF_angles.pdf    |  Bin
 .../test-documents/testPDF_bad_page_303226.pdf     |  Bin
 .../test/resources/test-documents/testPDF_bom.pdf  |  Bin
 .../resources/test-documents/testPDF_bookmarks.pdf |  Bin
 .../test-documents/testPDF_childAttachments.pdf    |  Bin
 .../testPDF_deeplyEmbeddedAttachments.pdf          |  Bin
 .../test-documents/testPDF_diffTitles.pdf          |    0
 .../test-documents/testPDF_multiFormatEmbFiles.pdf |  Bin
 ...PDF_no_extract_no_accessibility_owner_empty.pdf |    0
 ...tPDF_no_extract_no_accessibility_owner_user.pdf |    0
 ...DF_no_extract_yes_accessibility_owner_empty.pdf |    0
 ...PDF_no_extract_yes_accessibility_owner_user.pdf |    0
 .../resources/test-documents/testPDF_protected.pdf |  Bin
 .../test-documents/testPDF_twoAuthors.pdf          |  Bin
 .../resources/test-documents/testPageNumber.pdf    |  Bin
 .../test-documents/testPopupAnnotation.pdf         |  Bin
 .../test-documents/testStandardsExtractor.pdf      |  Bin
 .../tika-parser-pkg-module/pom.xml                 |   96 ++
 .../apache/tika/parser/pkg/CompressorParser.java   |  255 +++
 .../tika/parser/pkg/CompressorParserOptions.java   |    0
 .../org/apache/tika/parser/pkg/PackageParser.java  |  514 ++++++
 .../java/org/apache/tika/parser/pkg/RarParser.java |    0
 .../services/org.apache.tika.parser.Parser         |    0
 .../apache/tika/parser/pkg/AbstractPkgTest.java    |   90 +
 .../org/apache/tika/parser/pkg/ArParserTest.java   |    0
 .../apache/tika/parser/pkg/Bzip2ParserTest.java    |    0
 .../apache/tika/parser/pkg/CompressParserTest.java |    0
 .../tika/parser/pkg/CompressorParserTest.java      |    0
 .../org/apache/tika/parser/pkg/GzipParserTest.java |    0
 .../apache/tika/parser/pkg/PackageParserTest.java  |   85 +
 .../org/apache/tika/parser/pkg/RarParserTest.java  |    0
 .../apache/tika/parser/pkg/Seven7ParserTest.java   |    0
 .../org/apache/tika/parser/pkg/TarParserTest.java  |    0
 .../org/apache/tika/parser/pkg/ZipParserTest.java  |    0
 .../org/apache/tika/parser/pkg/ZlibParserTest.java |    0
 .../org/apache/tika/parser/pkg/tika-config.xml     |    0
 .../src/test/resources/test-documents/TIKA-216.tgz |  Bin
 .../src/test/resources/test-documents/droste.zip   |  Bin
 .../resources/test-documents/full_encrypted.7z     |  Bin
 .../src/test/resources/test-documents/gbk.zip      |  Bin 0 -> 432 bytes
 .../src/test/resources/test-documents/moby.zip     |  Bin
 .../src/test/resources/test-documents/quine.gz     |  Bin
 .../test-documents/test-documents-enc.rar          |  Bin
 .../test-documents/test-documents-spanned.z01      |  Bin
 .../test-documents/test-documents-spanned.zip      |  Bin
 .../resources/test-documents/test-documents.7z     |  Bin
 .../resources/test-documents/test-documents.cab    |  Bin
 .../resources/test-documents/test-documents.cpio   |  Bin
 .../resources/test-documents/test-documents.ddf    |    0
 .../resources/test-documents/test-documents.dmg    |  Bin
 .../resources/test-documents/test-documents.rar    |  Bin
 .../resources/test-documents/test-documents.tar    |  Bin
 .../resources/test-documents/test-documents.tar.Z  |  Bin
 .../resources/test-documents/test-documents.tbz2   |  Bin
 .../resources/test-documents/test-documents.tgz    |  Bin
 .../resources/test-documents}/test-documents.zip   |  Bin
 .../resources/test-documents/test-zip-of-zip.zip   |  Bin
 .../test-documents/test7Z_protected_passTika.7z    |  Bin
 .../test/resources/test-documents/testARofSND.ar   |  Bin
 .../test/resources/test-documents/testARofText.ar  |    0
 .../test-documents/testBROTLI_compressed.br        |  Bin
 .../test/resources/test-documents/testEmbedded.zip |  Bin
 .../resources/test-documents/testJAR_with_HTML.jar |  Bin
 .../test-documents/testJAR_with_PEHDR.jar          |  Bin
 .../resources/test-documents/testLZ4-framed.lz4    |  Bin
 .../src/test/resources/test-documents/testLZMA_oom |  Bin
 .../src/test/resources/test-documents/testSVG.svg  |    0
 .../src/test/resources/test-documents/testSVG.svgz |  Bin
 .../resources/test-documents/testSnappy-framed.sz  |  Bin
 .../src/test/resources/test-documents/testTXT.zlib |  Bin
 .../test/resources/test-documents/testTXT.zlib0    |  Bin
 .../test/resources/test-documents/testTXT.zlib5    |  Bin
 .../test/resources/test-documents/testTXT.zlib9    |  Bin
 .../test/resources/test-documents/testZSTD.zstd    |  Bin
 .../src/test/resources/test-documents/testZ_oom.Z  |    0
 .../resources/test-documents/testZipEncrypted.zip  |  Bin
 .../test-documents/testZip_with_DataDescriptor.zip |  Bin
 .../testZip_with_DataDescriptor2.zip               |  Bin
 .../tika-parser-text-module/pom.xml                |   83 +
 .../java/org/apache/tika/parser/csv/CSVParams.java |    0
 .../java/org/apache/tika/parser/csv/CSVResult.java |    0
 .../org/apache/tika/parser/csv/CSVSniffer.java     |  397 +++++
 .../apache/tika/parser/csv/TextAndCSVParser.java   |  356 ++++
 .../tika/parser/strings/Latin1StringsParser.java   |  323 ++++
 .../apache/tika/parser/strings/StringsConfig.java  |    0
 .../tika/parser/strings/StringsEncoding.java       |    0
 .../apache/tika/parser/strings/StringsParser.java  |  292 ++++
 .../apache/tika/parser/txt/CharsetDetector.java    |  610 +++++++
 .../org/apache/tika/parser/txt/CharsetMatch.java   |  271 +++
 .../apache/tika/parser/txt/CharsetRecog_2022.java  |    0
 .../apache/tika/parser/txt/CharsetRecog_UTF8.java  |    0
 .../tika/parser/txt/CharsetRecog_Unicode.java      |    0
 .../apache/tika/parser/txt/CharsetRecog_mbcs.java  |  536 ++++++
 .../apache/tika/parser/txt/CharsetRecog_sbcs.java  |    0
 .../apache/tika/parser/txt/CharsetRecognizer.java  |    0
 .../tika/parser/txt/Icu4jEncodingDetector.java     |    0
 .../java/org/apache/tika/parser/txt/TXTParser.java |    0
 .../tika/parser/txt/UniversalEncodingDetector.java |    0
 .../tika/parser/txt/UniversalEncodingListener.java |    0
 .../org.apache.tika.detect.EncodingDetector        |    0
 .../services/org.apache.tika.parser.Parser         |    0
 .../org/apache/tika/parser/csv/CSVSnifferTest.java |    0
 .../tika/parser/csv/TextAndCSVParserTest.java      |    0
 .../parser/strings/Latin1StringsParserTest.java    |    0
 .../tika/parser/strings/StringsConfigTest.java     |    0
 .../tika/parser/strings/StringsParserTest.java     |   77 +
 .../tika/parser/txt/CharsetDetectorTest.java       |    0
 .../org/apache/tika/parser/txt/TXTParserTest.java  |    0
 .../org/apache/tika/parser/csv/tika-config.xml     |    0
 .../test-configs/tika-config-strings-full.xml      |    0
 .../test-configs/tika-config-strings-partial.xml   |    0
 .../resources/test-documents/english.cp500.txt     |    0
 .../resources/test-documents/multi-language.txt    |    0
 .../src/test/resources/test-documents/resume.html  |    0
 .../resources/test-documents/russian.cp866.txt     |    0
 .../test-documents/testOCTET_header.dbase3         |  Bin
 .../resources/test-documents/testTXT_win-1252.txt  |    0
 .../resources/test-documents/testVCalendar.vcs     |    0
 .../tika-parser-xml-module/pom.xml                 |   65 +
 .../tika/parser/xliff/XLIFF12ContentHandler.java   |    0
 .../apache/tika/parser/xliff/XLIFF12Parser.java    |    0
 .../org/apache/tika/parser/xliff/XLZParser.java    |    0
 .../tika/parser/xml/AbstractMetadataHandler.java   |    0
 .../xml/AttributeDependantMetadataHandler.java     |    0
 .../tika/parser/xml/AttributeMetadataHandler.java  |    0
 .../org/apache/tika/parser/xml/DcXMLParser.java    |    0
 .../tika/parser/xml/ElementMetadataHandler.java    |    0
 .../apache/tika/parser/xml/FictionBookParser.java  |    0
 .../apache/tika/parser/xml/MetadataHandler.java    |    0
 .../tika/parser/xml/TextAndAttributeXMLParser.java |    0
 .../java/org/apache/tika/parser/xml/XMLParser.java |   89 +
 .../org/apache/tika/parser/xml/XMLProfiler.java    |  146 ++
 .../services/org.apache.tika.parser.Parser         |    0
 .../tika/parser/xliff/XLIFF12ParserTest.java       |    0
 .../apache/tika/parser/xliff/XLZParserTest.java    |    0
 .../apache/tika/parser/xml/DcXMLParserTest.java    |    0
 .../EmptyAndDuplicateElementsXMLParserTest.java    |    0
 .../tika/parser/xml/FictionBookParserTest.java     |    0
 .../parser/xml/TextAndAttributeXMLParserTest.java  |    0
 .../src/test/resources/test-documents/test.fb2     |    0
 .../test/resources/test-documents/testXLIFF12.xlf  |    0
 .../test/resources/test-documents/testXLIFF12.xlz  |  Bin
 .../src/test/resources/test-documents/testXML.xml  |    0
 .../src/test/resources/test-documents/testXML2.xml |    0
 .../src/test/resources/test-documents/testXML3.xml |    0
 .../src/test/resources/test-documents/testXXE.xml  |    0
 .../tika-parser-xmp-commons/pom.xml                |   61 +
 .../apache/tika/parser/xmp/JempboxExtractor.java   |    0
 .../apache/tika/parser/xmp/XMPPacketScanner.java   |    0
 .../tika/parser/xmp/JempboxExtractorTest.java      |  137 ++
 .../test-documents/testJPEG_commented.jpg          |  Bin
 .../testJPEG_commented_pspcs2mac.jpg               |  Bin
 .../testJPEG_commented_xnviewmp026.jpg             |  Bin
 .../src/test/resources/test-documents/testXMP.xmp  |    0
 .../tika-parser-zip-commons/pom.xml                |   60 +
 .../tika/detect/zip/CompressorConstants.java       |    0
 .../detect/zip/DefaultZipContainerDetector.java    |    0
 .../DeprecatedStreamingZipContainerDetector.java   |    0
 .../detect/zip/DeprecatedZipContainerDetector.java |    0
 .../org/apache/tika/detect/zip/IPADetector.java    |  109 ++
 .../org/apache/tika/detect/zip/JarDetector.java    |    0
 .../org/apache/tika/detect/zip/KMZDetector.java    |    0
 .../tika/detect/zip/OpenDocumentDetector.java      |    0
 .../apache/tika/detect/zip/PackageConstants.java   |    0
 .../apache/tika/detect/zip/StarOfficeDetector.java |    0
 .../tika/detect/zip/StreamingDetectContext.java    |   82 +
 .../detect/zip/StreamingZipContainerDetector.java  |    0
 .../tika/detect/zip/ZipContainerDetector.java      |    0
 .../tika/detect/zip/ZipContainerDetectorBase.java  |  108 ++
 .../org/apache/tika/zip/utils/ZipSalvager.java     |    0
 .../services/org.apache.tika.detect.Detector       |    0
 ...org.apache.tika.detect.zip.ZipContainerDetector |    0
 .../org/apache/tika/detect/zip/ZipParserTest.java  |    0
 .../src/test/resources/test-documents/testJAR.jar  |  Bin
 .../src/test/resources/test-documents/testKMZ.kmz  |  Bin
 .../tika-parsers-standard-package/pom.xml          |  418 +++++
 .../org/apache/tika/parser/internal/Activator.java |    0
 .../apache/tika/config/TikaDetectorConfigTest.java |    0
 .../tika/config/TikaEncodingDetectorTest.java      |  285 ++++
 .../apache/tika/config/TikaParserConfigTest.java   |    0
 .../tika/config/TikaTranslatorConfigTest.java      |    0
 .../tika/detect/TestContainerAwareDetector.java    |  555 +++++++
 .../apache/tika/detect/TestDetectorLoading.java    |    0
 .../tika/detect/TestFileCommandDetector.java       |    0
 .../tika/extractor/EmbeddedDocumentUtilTest.java   |    0
 .../java/org/apache/tika/mime/MimeTypeTest.java    |    0
 .../java/org/apache/tika/mime/MimeTypesTest.java   |    0
 .../java/org/apache/tika/mime/TestMimeTypes.java   |    0
 .../apache/tika/parser/AutoDetectParserTest.java   |  470 ++++++
 .../tika/parser/AutoDetectReaderParserTest.java    |   91 +
 .../parser/BouncyCastleDigestingParserTest.java    |    0
 .../apache/tika/parser/DigestingParserTest.java    |    0
 .../org/apache/tika/parser/ParsingReaderTest.java  |    0
 .../tika/parser/RecursiveParserWrapperTest.java    |  413 +++++
 .../org/apache/tika/parser/TabularFormatsTest.java |    0
 .../java/org/apache/tika/parser/TestParsers.java   |  133 ++
 .../apache/tika/parser/TestXMLEntityExpansion.java |  150 ++
 .../java/org/apache/tika/parser/TestXXEInXML.java  |    0
 .../java/org/apache/tika/parser/XMLTestBase.java   |    0
 .../parser/apple/AppleSingleFileParserTest.java    |    0
 .../apache/tika/parser/apple/PListParserTest.java  |    0
 .../apache/tika/parser/crypto/TSDParserTest.java   |    0
 .../parser/fork/ForkParserIntegrationTest.java     |  315 ++++
 .../apache/tika/parser/html/HtmlParserTest.java    |    0
 .../apache/tika/parser/mail/MboxParserTest.java    |    0
 .../apache/tika/parser/mail/RFC822ParserTest.java  |  166 ++
 .../tika/parser/microsoft/EMFParserTest.java       |    0
 .../tika/parser/microsoft/ExcelParserTest.java     |    0
 .../microsoft/POIContainerExtractionTest.java      |    0
 .../parser/microsoft/PowerPointParserTest.java     |    0
 .../tika/parser/microsoft/XML2003ParserTest.java   |    0
 .../parser/microsoft/ooxml/OOXMLParserTest.java    |    0
 .../parser/microsoft/ooxml/TruncatedOOXMLTest.java |    0
 .../tika/parser/microsoft/rtf/RTFParserTest.java   |    0
 .../apache/tika/parser/mock/MockParserTest.java    |    0
 .../tika/parser/ocr/TesseractOCRParserTest.java    |    0
 .../org/apache/tika/parser/odf/ODFParserTest.java  |    0
 .../org/apache/tika/parser/pdf/PDFParserTest.java  |  407 +++++
 .../org/apache/tika/parser/pkg/ArParserTest.java   |    0
 .../apache/tika/parser/pkg/Bzip2ParserTest.java    |    0
 .../pkg/CompositeZipContainerDetectorTest.java     |    0
 .../apache/tika/parser/pkg/CompressParserTest.java |    0
 .../tika/parser/pkg/CompressorParserTest.java      |    0
 .../org/apache/tika/parser/pkg/GzipParserTest.java |    0
 .../apache/tika/parser/pkg/PackageParserTest.java  |   34 +
 .../org/apache/tika/parser/pkg/RarParserTest.java  |    0
 .../apache/tika/parser/pkg/Seven7ParserTest.java   |  167 ++
 .../org/apache/tika/parser/pkg/TarParserTest.java  |    0
 .../org/apache/tika/parser/pkg/ZipParserTest.java  |  142 ++
 .../org/apache/tika/parser/pkg/ZlibParserTest.java |    0
 .../tika/parser/xml/FictionBookParserTest.java     |    0
 .../sax/PhoneExtractingContentHandlerTest.java     |    0
 .../sax/StandardsExtractingContentHandlerTest.java |    0
 .../apache/tika/utils/ServiceLoaderUtilsTest.java  |    0
 .../src/test/resources/log4j.properties            |    0
 .../org/apache/tika/config/TIKA-1558-exclude.xml   |    0
 .../apache/tika/config/TIKA-1558-excludesub.xml    |    0
 .../tika/config/TIKA-1702-detector-exclude.xml     |    0
 .../tika/config/TIKA-1702-translator-default.xml   |    0
 .../config/TIKA-1702-translator-empty-default.xml  |    0
 .../tika/config/TIKA-1702-translator-empty.xml     |    0
 .../tika/config/TIKA-1708-detector-composite.xml   |    0
 .../tika/config/TIKA-1708-detector-default.xml     |    0
 ...-2273-encoding-detector-outside-static-init.xml |    0
 ...TIKA-2273-exclude-encoding-detector-default.xml |    0
 .../TIKA-2273-no-icu4j-encoding-detector.xml       |    0
 .../TIKA-2273-non-detecting-params-bad-charset.xml |    0
 .../tika/config/TIKA-2273-non-detecting-params.xml |    0
 .../TIKA-2273-parameterize-encoding-detector.xml   |    0
 .../TIKA-2485-encoding-detector-mark-limits.xml    |    0
 .../org/apache/tika/parser/TIKA-3137-include.xml   |   38 +
 .../apache/tika/parser/odf/tika-config-macros.xml  |    0
 .../CVLKRA-KYC_Download_File_Structure_V3.1.xlsx   |  Bin
 .../test/resources/test-documents/NUTCH-1997.cbor  |    0
 .../active_layer_arcss_grid_barrow_alaska_2012.dif |    0
 .../src/test/resources/test-documents/baseball.gif |  Bin
 .../src/test/resources/test-documents/baseball.jpg |  Bin
 .../src/test/resources/test-documents/baseball.png |  Bin
 ..._values_of_alkanes_extracted_from_paleosols.dif |    0
 .../test-documents/mock/embedded_then_npe.xml      |    0
 .../test/resources/test-documents/mock/example.xml |    0
 .../resources/test-documents/mock/fake_oom.xml     |    0
 .../resources/test-documents/mock/heavy_hang.xml   |    0
 .../resources/test-documents/mock/nothing_bad.xml  |    0
 .../resources/test-documents/mock/null_pointer.xml |    0
 .../test-documents/mock/null_pointer_no_msg.xml    |    0
 .../resources/test-documents/mock/real_oom.xml     |    0
 .../test/resources/test-documents/mock/sleep.xml   |    0
 .../test-documents/mock/sleep_interruptible.xml    |    0
 .../mock/sleep_not_interruptible.xml               |    0
 .../resources/test-documents/mock/system_exit.xml  |    0
 .../test-documents/mock/thread_interrupt.xml       |    0
 .../resources/test-documents/test-columnar.csv     |    0
 .../resources/test-documents/test-columnar.ods     |  Bin
 .../resources/test-documents/test-columnar.xpt     |  Bin
 .../src/test/resources/test-documents/test1.swf    |  Bin
 .../src/test/resources/test-documents/test2.swf    |  Bin
 .../src/test/resources/test-documents/test3.swf    |  Bin
 .../src/test/resources/test-documents/testAC3.ac3  |  Bin
 .../test/resources/test-documents/testAMR-WB.amr   |  Bin
 .../src/test/resources/test-documents/testAMR.amr  |  Bin
 .../src/test/resources/test-documents/testAPK.apk  |  Bin
 .../src/test/resources/test-documents/testASF.asf  |  Bin
 .../test/resources/test-documents/testASiCE.asice  |  Bin
 .../test/resources/test-documents/testASiCS.asics  |  Bin
 .../src/test/resources/test-documents/testBAT.bat  |    0
 .../test/resources/test-documents/testBATUpper.bat |    0
 .../resources/test-documents/testBDB_btree_2.db    |  Bin
 .../resources/test-documents/testBDB_btree_3.db    |  Bin
 .../resources/test-documents/testBDB_btree_4.db    |  Bin
 .../resources/test-documents/testBDB_btree_5.db    |  Bin
 .../resources/test-documents/testBDB_hash_2.db     |  Bin
 .../resources/test-documents/testBDB_hash_3.db     |  Bin
 .../resources/test-documents/testBDB_hash_4.db     |  Bin
 .../resources/test-documents/testBDB_hash_5.db     |  Bin
 .../test/resources/test-documents/testBIBTEX.bib   |    0
 .../test/resources/test-documents/testBMPfp.txt    |    0
 .../src/test/resources/test-documents/testCERT.der |  Bin
 .../src/test/resources/test-documents/testCERT.pem |    0
 .../test/resources/test-documents/testCOREL.shw    |  Bin
 .../src/test/resources/test-documents/testCSS.css  |    0
 .../src/test/resources/test-documents/testCSV.csv  |    0
 .../test/resources/test-documents/testComment.pdf  |  Bin
 .../src/test/resources/test-documents/testDCX.dcx  |  Bin
 .../test/resources/test-documents/testDITA.dita    |    0
 .../test/resources/test-documents/testDITA.ditamap |    0
 .../test/resources/test-documents/testDITA2.dita   |    0
 .../test/resources/test-documents/testDJVU.djvu    |  Bin
 .../test/resources/test-documents/testDSAKEY.der   |  Bin
 .../test/resources/test-documents/testDSAKEY.pem   |    0
 .../resources/test-documents/testDSAPARAMS.pem     |    0
 .../test/resources/test-documents/testDWF2010.dwf  |  Bin
 .../resources/test-documents/testDXF_ascii.dxf     |    0
 .../test/resources/test-documents/testDigilite.fdf |    0
 .../src/test/resources/test-documents/testEAC3.ac3 |  Bin
 .../src/test/resources/test-documents/testEAR.ear  |  Bin
 .../test/resources/test-documents/testECKEY.der    |  Bin
 .../test/resources/test-documents/testECKEY.pem    |    0
 .../test/resources/test-documents/testECPARAMS.pem |    0
 .../test-documents/testEndNoteImportFile.enw       |    0
 .../test/resources/test-documents/testFITS.fits    |    0
 .../test-documents/testFITS_ShorterHeader.fits     |    0
 .../test/resources/test-documents/testFLAC.flac    |  Bin
 .../src/test/resources/test-documents/testFLAC.oga |  Bin
 .../test/resources/test-documents/testFOXMAIL.box  |    0
 .../resources/test-documents/testFreeBSD-x86-64    |  Bin
 .../resources/test-documents/testGRAPHVIZd.dot     |    0
 .../resources/test-documents/testGRAPHVIZdc.dot    |    0
 .../resources/test-documents/testGRAPHVIZg.dot     |    0
 .../src/test/resources/test-documents/testH.h      |    0
 .../src/test/resources/test-documents/testHFA.hfa  |  Bin
 .../resources/test-documents/testICalendar.ics     |    0
 .../test/resources/test-documents/testINDD.indd    |  Bin
 .../src/test/resources/test-documents/testIPA.ipa  |  Bin
 .../test-documents/testJAVAPROPS.properties        |    0
 .../resources/test-documents/testJNILIB.jnilib     |  Bin
 .../resources/test-documents/testJavaHprofBinary   |  Bin
 .../resources/test-documents/testJavaHprofText     |    0
 .../src/test/resources/test-documents/testKML.kml  |    0
 .../test-documents/testLotus123-lotusftp.123       |  Bin
 .../test-documents/testLotus123-lotusftp.wk4       |  Bin
 .../test/resources/test-documents/testLotus123.wk1 |  Bin
 .../test/resources/test-documents/testLotus123.wk3 |  Bin
 .../test/resources/test-documents/testLotus123.wks |  Bin
 .../test/resources/test-documents/testLotusEml.eml |    0
 .../test-documents/testMHTMLFirefox.mhtml          |    0
 .../src/test/resources/test-documents/testMKV.mkv  |  Bin
 .../resources/test-documents/testMSWriteFile.wri   |  Bin
 .../test/resources/test-documents/testMYSQL.MYD    |  Bin
 .../test/resources/test-documents/testMYSQL.MYI    |  Bin
 .../test/resources/test-documents/testMYSQL.frm    |  Bin
 .../resources/test-documents/testMemgraph.memgraph |  Bin
 .../resources/test-documents/testMessageNews.txt   |    0
 .../src/test/resources/test-documents/testNLS1.nls |  Bin
 .../src/test/resources/test-documents/testNLS2.nls |  Bin
 .../test/resources/test-documents/testOPUS.opus    |  Bin
 .../test-documents/testOptionalHyphen.doc          |  Bin
 .../test-documents/testOptionalHyphen.docx         |  Bin
 .../test-documents/testOptionalHyphen.ppt          |  Bin
 .../test-documents/testOptionalHyphen.pptx         |  Bin
 .../test-documents/testOptionalHyphen.rtf          |    0
 .../src/test/resources/test-documents/testPBM.pbm  |    0
 .../src/test/resources/test-documents/testPCX.pcx  |  Bin
 .../src/test/resources/test-documents/testPGM.pgm  |    0
 .../src/test/resources/test-documents/testPICT.pct |  Bin
 .../test-documents/testPKCS17Sig-v2.xml.p7m        |  Bin
 .../test-documents/testPKCS17Sig-v3.xml.p7m        |    0
 .../test-documents/testPKCS17Sig-v4.xml.p7m        |    0
 .../resources/test-documents/testPKCS17Sig.xml.p7m |    0
 .../test-documents/testPhoneNumberExtractor.odt    |  Bin
 .../src/test/resources/test-documents/testRDF.rdf  |    0
 .../test/resources/test-documents/testRSAKEY.der   |  Bin
 .../test/resources/test-documents/testRSAKEY.pem   |    0
 .../resources/test-documents/testSolaris-x86-32    |  Bin
 .../test-documents/testStarOffice-5.2-calc.sdc     |  Bin
 .../test-documents/testStarOffice-5.2-draw.sda     |  Bin
 .../test-documents/testStarOffice-5.2-impress.sdd  |  Bin
 .../test-documents/testStarOffice-5.2-writer.sdw   |  Bin
 .../test-documents/testStarOffice-6.0-calc.sxc     |  Bin
 .../test-documents/testStarOffice-6.0-draw.sxd     |  Bin
 .../test-documents/testStarOffice-6.0-draw.sxi     |  Bin
 .../testStarOffice-6.0-writer-template.stw         |  Bin
 .../test-documents/testStarOffice-6.0-writer.sxw   |  Bin
 .../test/resources/test-documents/testStataDTA.dta |  Bin
 .../test/resources/test-documents/testStataDTA.txt |    0
 .../resources/test-documents/testTAR_no_magic.tar  |  Bin
 .../test/resources/test-documents/testTXT-tika.axx |  Bin
 .../src/test/resources/test-documents/testTXT.txt  |    0
 .../test-documents/testTXTNonASCIIUTF8.txt         |    0
 .../test-documents/testThunderbirdEml.eml          |    0
 .../test/resources/test-documents/testTinyPE.exe   |  Bin
 .../test/resources/test-documents/testVORBIS.ogg   |  Bin
 .../test-documents/testVORCalcTemplate.vor         |  Bin
 .../test-documents/testVORDrawTemplate.vor         |  Bin
 .../test-documents/testVORImpressTemplate.vor      |  Bin
 .../test-documents/testVORWriterTemplate.vor       |  Bin
 .../test/resources/test-documents/testVideoMp4.mp4 |  Bin
 .../src/test/resources/test-documents/testWAR.war  |  Bin
 .../test/resources/test-documents/testWEBM.webm    |  Bin
 .../src/test/resources/test-documents/testWMA.wma  |  Bin
 .../src/test/resources/test-documents/testWMV.wmv  |  Bin
 .../test/resources/test-documents/testWMV_WMV2.wmv |  Bin
 .../test/resources/test-documents/testWORKS.wps    |  Bin
 .../resources/test-documents/testWORKS2000.wps     |  Bin
 .../test-documents/testWORKSWordProcessor3.0.wps   |  Bin
 .../test-documents/testWORKSWordProcessor4.0.wps   |  Bin
 .../test/resources/test-documents/testWebVTT.vtt   |    0
 .../resources/test-documents/testWebVTT_header.vtt |    0
 .../resources/test-documents/testWebVTT_simple.vtt |    0
 .../test-documents/testWindowsMediaMeta.asx        |    0
 .../src/test/resources/test-documents/testXDP.xdp  |    0
 .../test/resources/test-documents/testXFDF.xfdf    |    0
 tika-pipes/pom.xml                                 |  108 +-
 tika-pipes/tika-emitters/pom.xml                   |   36 +-
 tika-pipes/tika-emitters/tika-emitter-fs/pom.xml   |  179 +-
 .../tika/pipes/emitter/fs/FileSystemEmitter.java   |   22 +-
 tika-pipes/tika-emitters/tika-emitter-s3/pom.xml   |  273 ++-
 .../apache/tika/pipes/emitter/s3/S3Emitter.java    |    5 +-
 tika-pipes/tika-emitters/tika-emitter-solr/pom.xml |  240 +--
 .../tika/pipes/emitter/solr/SolrEmitter.java       |  280 ++--
 .../apache/tika/pipes/emitter/solr/TestBasic.java  |   86 -
 .../src/test/resources/log4j.properties            |   20 +-
 .../test/resources/tika-config-simple-emitter.xml  |   64 +-
 tika-pipes/tika-fetch-iterators/pom.xml            |   43 -
 .../tika-fetch-iterator-csv/pom.xml                |  129 --
 .../pipes/fetchiterator/csv/CSVFetchIterator.java  |  237 ---
 .../src/test/java/TestCSVFetchIterator.java        |  121 --
 .../tika-fetch-iterator-jdbc/pom.xml               |  123 --
 .../fetchiterator/jdbc/JDBCFetchIterator.java      |  267 ---
 .../fetchiterator/jdbc/TestJDBCFetchIterator.java  |  191 ---
 .../src/test/resources/log4j.properties            |   22 -
 .../tika-fetch-iterator-s3/pom.xml                 |  159 --
 .../pipes/fetchiterator/s3/S3FetchIterator.java    |  141 --
 .../fetchiterator/s3/TestS3FetchIterator.java      |  100 --
 tika-pipes/tika-fetchers/pom.xml                   |   34 +-
 tika-pipes/tika-fetchers/tika-fetcher-http/pom.xml |  193 ++-
 .../tika/pipes/fetcher/http/HttpFetcherTest.java   |   13 +-
 .../src/test/resources/tika-config-http.xml        |    2 +-
 tika-pipes/tika-fetchers/tika-fetcher-s3/pom.xml   |    8 +-
 .../tika/pipes/fetcher/s3/TestS3Fetcher.java       |    8 +-
 .../src/test/resources/tika-config-s3.xml          |    8 +-
 tika-pipes/tika-httpclient-commons/pom.xml         |   52 +-
 .../org/apache/tika/client/HttpClientFactory.java  |   33 +-
 tika-pipes/tika-pipes-async/pom.xml                |  101 --
 .../java/org/apache/tika/pipes/async/AsyncCli.java |  358 ----
 .../org/apache/tika/pipes/async/AsyncConfig.java   |   76 -
 .../org/apache/tika/pipes/async/AsyncData.java     |   57 -
 .../org/apache/tika/pipes/async/AsyncEmitHook.java |   24 -
 .../org/apache/tika/pipes/async/AsyncEmitter.java  |  125 --
 .../tika/pipes/async/AsyncEmitterProcess.java      |  379 -----
 .../tika/pipes/async/AsyncPipesEmitHook.java       |   61 -
 .../apache/tika/pipes/async/AsyncProcessor.java    |  594 -------
 .../tika/pipes/async/AsyncRuntimeException.java    |   27 -
 .../org/apache/tika/pipes/async/AsyncTask.java     |   54 -
 .../org/apache/tika/pipes/async/AsyncWorker.java   |  195 ---
 .../tika/pipes/async/AsyncWorkerProcess.java       |  505 ------
 .../src/main/resources/log4j.properties            |   22 -
 .../tika/pipes/async/AsyncProcessorTest.java       |  105 --
 .../org/apache/tika/pipes/async/MockEmitter.java   |  103 --
 .../org/apache/tika/pipes/async/MockFetcher.java   |   44 -
 .../apache/tika/pipes/async/SerializationTest.java |   49 -
 tika-pipes/tika-pipes-integration-tests/pom.xml    |  172 +-
 .../apache/tika/pipes/PipeIntegrationTests.java    |   55 +-
 .../tika/pipes/solrtest/TikaPipesSolr6Test.java    |   46 +
 .../tika/pipes/solrtest/TikaPipesSolr7Test.java    |   47 +
 .../tika/pipes/solrtest/TikaPipesSolr8Test.java    |   46 +
 .../tika/pipes/solrtest/TikaPipesSolrTestBase.java |  163 ++
 .../src/test/resources/log4j2.properties           |   28 +
 .../test/resources/tika-async-log4j2.properties    |   29 +
 .../src/test/resources/tika-config-s3ToFs.xml      |   22 +-
 .../src/test/resources/tika-config-s3Tos3.xml      |   34 +-
 .../src/test/resources/tika-config-solr-urls.xml   |  122 ++
 tika-pipes/tika-pipes-iterators/pom.xml            |   42 +
 .../tika-pipes-iterator-csv/pom.xml                |  127 ++
 .../pipes/pipesiterator/csv/CSVPipesIterator.java  |  268 +++
 .../src/test/java/TestCSVPipesIterator.java        |  121 ++
 .../src/test/resources/test-simple.csv             |    0
 .../tika-pipes-iterator-jdbc/pom.xml               |  118 ++
 .../pipesiterator/jdbc/JDBCPipesIterator.java      |  294 ++++
 .../pipesiterator/jdbc/TestJDBCPipesIterator.java  |  189 +++
 .../src/test/resources/log4j.properties            |    0
 .../tika-pipes-iterator-s3/pom.xml                 |  155 ++
 .../pipes/pipesiterator/s3/S3PipesIterator.java    |  145 ++
 .../pipesiterator/s3/TestS3PipesIterator.java      |  100 ++
 .../src/test/resources/log4j.properties            |    0
 .../tika-pipes-iterator-solr/pom.xml               |  159 ++
 .../tika/pipes/solrtest/SolrPipesIterator.java     |  263 +++
 tika-serialization/pom.xml                         |   47 +-
 .../tika/metadata/serialization/JsonEmitData.java  |    7 +-
 .../metadata/serialization/JsonFetchEmitTuple.java |  105 +-
 .../serialization/JsonFetchEmitTupleList.java      |   37 +-
 .../tika/metadata/serialization/JsonMetadata.java  |   19 +-
 .../serialization/JsonMetadataDeserializer.java    |    1 -
 .../metadata/serialization/JsonMetadataList.java   |   22 +-
 .../serialization/JsonMetadataSerializer.java      |    3 +-
 .../serialization/JsonStreamingSerializer.java     |   12 +-
 .../serialization/PrettyMetadataKeyComparator.java |   33 +-
 .../serialization/JsonFetchEmitTupleListTest.java  |   32 +-
 .../serialization/JsonFetchEmitTupleTest.java      |   24 +-
 .../serialization/JsonMetadataListTest.java        |   56 +-
 .../metadata/serialization/JsonMetadataTest.java   |   67 +-
 tika-server/pom.xml                                |  103 +-
 tika-server/tika-server-classic/assembly.xml       |   46 -
 tika-server/tika-server-classic/bin/tika.in.sh     |   80 -
 tika-server/tika-server-classic/pom.xml            |  231 ---
 .../server/classic/config/PDFServerConfig.java     |   70 -
 .../classic/config/TesseractServerConfig.java      |   69 -
 .../classic/resource/XMPMetadataResource.java      |   69 -
 .../classic/writer/XMPMessageBodyWriter.java       |   70 -
 .../org.apache.tika.server.core.ParseContextConfig |   16 -
 ...he.tika.server.core.resource.TikaServerResource |   15 -
 ...apache.tika.server.core.writer.TikaServerWriter |   15 -
 .../src/main/resources/log4j.properties            |   22 -
 .../tika/server/classic/DetectorResourceTest.java  |   98 --
 .../apache/tika/server/classic/FetcherTest.java    |   95 --
 .../tika/server/classic/MetadataResourceTest.java  |  231 ---
 .../classic/RecursiveMetadataFilterTest.java       |  101 --
 .../classic/RecursiveMetadataResourceTest.java     |  367 -----
 .../tika/server/classic/TikaDetectorsTest.java     |  138 --
 .../tika/server/classic/TikaMimeTypesTest.java     |   87 -
 .../tika/server/classic/TikaParsersTest.java       |  191 ---
 .../tika/server/classic/TikaResourceTest.java      |  604 -------
 .../tika/server/classic/UnpackerResourceTest.java  |  235 ---
 .../test/resources/config/TIKA-3137-include.xml    |   38 -
 .../src/test/resources/log4j.properties            |   22 -
 tika-server/tika-server-client/pom.xml             |  214 +--
 .../org/apache/tika/server/client/TikaClient.java  |    2 +-
 .../apache/tika/server/client/TikaClientCLI.java   |   29 +-
 .../apache/tika/server/client/TikaHttpClient.java  |    3 +-
 .../src/main/resources/log4j.properties            |   22 -
 .../src/main/resources/log4j2.properties           |   29 +
 .../src/test/resources/log4j.properties            |   22 -
 .../src/test/resources/log4j2.properties           |   29 +
 .../resources/tika-config-simple-fs-emitter.xml    |  115 +-
 tika-server/tika-server-core/pom.xml               |  700 ++++----
 .../server/core/ProduceTypeResourceComparator.java |  145 ++
 .../org/apache/tika/server/core/TikaServerCli.java |   33 +-
 .../apache/tika/server/core/TikaServerConfig.java  |  246 +--
 .../apache/tika/server/core/TikaServerProcess.java |  220 +--
 .../tika/server/core/TikaServerWatchDog.java       |   28 +-
 .../server/core/config/PasswordProviderConfig.java |    7 +-
 .../tika/server/core/resource/AsyncEmitter.java    |  141 --
 .../tika/server/core/resource/AsyncParser.java     |  139 --
 .../tika/server/core/resource/AsyncRequest.java    |    2 +-
 .../tika/server/core/resource/AsyncResource.java   |   60 +-
 .../tika/server/core/resource/EmitterResource.java |  276 ----
 .../tika/server/core/resource/PipesResource.java   |  155 ++
 .../core/resource/RecursiveMetadataResource.java   |   54 +-
 .../tika/server/core/resource/TikaDetectors.java   |    6 +-
 .../tika/server/core/resource/TikaMimeTypes.java   |    8 +-
 .../tika/server/core/resource/TikaParsers.java     |   12 +-
 .../tika/server/core/resource/TikaResource.java    |   74 +-
 .../tika/server/core/resource/TikaWelcome.java     |   21 +-
 .../server/core/resource/UnpackerResource.java     |   10 +-
 .../server/core/writer/CSVMessageBodyWriter.java   |   10 +-
 .../main/resources/tika-server-config-default.xml  |  156 +-
 .../org/apache/tika/server/core/CXFTestBase.java   |    5 +-
 .../tika/server/core/IntegrationTestBase.java      |    3 +-
 .../tika/server/core/LanguageResourceTest.java     |    2 +-
 .../server/core/RecursiveMetadataResourceTest.java |   64 +
 .../apache/tika/server/core/ServerStatusTest.java  |    2 +-
 .../apache/tika/server/core/StackTraceOffTest.java |    4 +-
 .../apache/tika/server/core/StackTraceTest.java    |    4 +-
 .../apache/tika/server/core/TikaEmitterTest.java   |  261 ---
 .../org/apache/tika/server/core/TikaPipesTest.java |  308 ++++
 .../core/TikaResourceMetadataFilterTest.java       |    2 +-
 .../tika/server/core/TikaResourceNoStackTest.java  |   21 +-
 .../apache/tika/server/core/TikaResourceTest.java  |  108 +-
 .../core/TikaServerAsyncIntegrationTest.java       |   79 +-
 .../tika/server/core/TikaServerConfigTest.java     |    7 +
 .../core/TikaServerEmitterIntegrationTest.java     |  270 ---
 .../server/core/TikaServerIntegrationTest.java     |   19 +-
 .../core/TikaServerPipesIntegrationTest.java       |  281 ++++
 .../apache/tika/server/core/TikaWelcomeTest.java   |    4 +-
 .../tika/server/core/TranslateResourceTest.java    |    2 +-
 .../resources/configs/metadata-filter-include.xml  |   10 +-
 .../configs/tika-config-server-badjvmargs.xml      |   26 +-
 .../resources/configs/tika-config-server-basic.xml |   26 +-
 .../configs/tika-config-server-emitter.xml         |   30 +-
 .../configs/tika-config-server-timeout-10000.xml   |   20 +-
 .../test/resources/configs/tika-config-server.xml  |   26 +-
 .../src/test/resources/log4j.properties            |   26 -
 .../src/test/resources/log4j2.properties           |   33 +
 .../{log4j_forked.xml => log4j2_forked.xml}        |    0
 tika-server/tika-server-standard/assembly.xml      |   46 +
 .../bin/init.d/tika                                |    0
 .../bin/install_tika_service.sh                    |    0
 .../bin/tika                                       |    0
 tika-server/tika-server-standard/bin/tika.in.sh    |   80 +
 tika-server/tika-server-standard/pom.xml           |  231 +++
 .../server/standard/config/PDFServerConfig.java    |   70 +
 .../standard/config/TesseractServerConfig.java     |   69 +
 .../standard/resource/XMPMetadataResource.java     |   69 +
 .../standard/writer/XMPMessageBodyWriter.java      |   70 +
 .../org.apache.tika.server.core.ParseContextConfig |   16 +
 ...he.tika.server.core.resource.TikaServerResource |   15 +
 ...apache.tika.server.core.writer.TikaServerWriter |   15 +
 .../src/main/resources/log4j2.properties           |   26 +
 .../tika/server/standard/DetectorResourceTest.java |   98 ++
 .../apache/tika/server/standard/FetcherTest.java   |  105 ++
 .../tika/server/standard/MetadataResourceTest.java |  231 +++
 .../standard/RecursiveMetadataFilterTest.java      |  101 ++
 .../standard/RecursiveMetadataResourceTest.java    |  381 +++++
 .../tika/server/standard/TikaDetectorsTest.java    |  138 ++
 .../tika/server/standard/TikaMimeTypesTest.java    |   87 +
 .../tika/server/standard/TikaParsersTest.java      |  191 +++
 .../tika/server/standard/TikaResourceTest.java     |  608 +++++++
 .../tika/server/standard/UnpackerResourceTest.java |  235 +++
 .../test/resources/config/TIKA-3137-include.xml    |   38 +
 .../config/tika-config-for-server-tests.xml        |    0
 .../resources/config/tika-config-url-fetcher.xml   |    0
 .../src/test/resources/log4j2.properties           |   25 +
 .../src/test/resources/test-documents/2exe.docx    |  Bin
 .../src/test/resources/test-documents/2pic.doc     |  Bin
 .../src/test/resources/test-documents/2pic.docx    |  Bin
 .../test-documents/CDEC_WEATHER_2010_03_02         |    0
 .../src/test/resources/test-documents/Doc1_ole.doc |  Bin
 .../src/test/resources/test-documents/foo.csv      |    0
 .../src/test/resources/test-documents/password.xls |  Bin
 .../src/test/resources/test-documents/pic.xls      |  Bin
 .../src/test/resources/test-documents/pic.xlsx     |  Bin
 .../src/test/resources/test-documents/test.doc     |  Bin
 .../test/resources/test-documents/testHTML.html    |    0
 .../src/test/resources/test-documents/testOCR.pdf  |  Bin
 .../test-documents/testPDFTwoTextBoxes.pdf         |  Bin
 .../test-documents/testPassword4Spaces.pdf         |  Bin
 .../testRTF_npeFromWMFInTikaServer.rtf             |    0
 .../test-documents/testUnicodePassword.pdf         |  Bin
 .../test-documents/test_recursive_embedded.docx    |  Bin
 tika-translate/pom.xml                             |   46 +-
 .../tika/language/translate/GoogleTranslator.java  |  128 +-
 .../tika/language/translate/MosesTranslator.java   |   16 +-
 .../tika/language/translate/RTGTranslator.java     |  142 ++
 .../org.apache.tika.language.translate.Translator  |    1 +
 .../tika/language/translate/RTGTranslatorTest.java |   64 +
 .../language/translate/YandexTranslatorTest.java   |   48 +-
 tika-xmp/pom.xml                                   |    4 +-
 .../main/java/org/apache/tika/xmp/XMPMetadata.java |    2 +-
 .../apache/tika/xmp/convert/GenericConverter.java  |    2 +-
 .../tika/xmp/convert/MSOfficeBinaryConverter.java  |    6 +-
 .../tika/xmp/convert/MSOfficeXMLConverter.java     |    6 +-
 .../tika/xmp/convert/OpenDocumentConverter.java    |    6 +-
 .../org/apache/tika/xmp/convert/RTFConverter.java  |    5 +-
 .../org/apache/tika/xmp/convert/TikaToXMP.java     |    2 +-
 2429 files changed, 79066 insertions(+), 77073 deletions(-)
 create mode 100644 .asf.yaml
 delete mode 100644 tika-app/src/main/resources/log4j.properties
 create mode 100644 tika-app/src/main/resources/log4j2.properties
 create mode 100644 tika-app/src/main/resources/log4j2_batch_process.properties
 delete mode 100644 tika-app/src/main/resources/log4j_batch_process.properties
 create mode 100644 tika-app/src/test/resources/log4j2_batch_process_test.properties
 delete mode 100644 tika-app/src/test/resources/log4j_batch_process_test.properties
 delete mode 100644 tika-batch/src/test/resources/log4j-on.properties
 delete mode 100644 tika-batch/src/test/resources/log4j.properties
 create mode 100644 tika-batch/src/test/resources/log4j2-on.properties
 create mode 100644 tika-batch/src/test/resources/log4j2.properties
 create mode 100644 tika-batch/src/test/resources/log4j2_process.properties
 delete mode 100644 tika-batch/src/test/resources/log4j_process.properties
 delete mode 100644 tika-bundles/tika-bundle-classic/pom.xml
 delete mode 100644 tika-bundles/tika-bundle-classic/src/test/java/org/apache/tika/bundle/BundleIT.java
 delete mode 100644 tika-bundles/tika-bundle-classic/src/test/resources/log4j.properties
 delete mode 100644 tika-bundles/tika-bundle-classic/test-bundles.xml
 create mode 100644 tika-bundles/tika-bundle-standard/pom.xml
 rename tika-bundles/{tika-bundle-classic => tika-bundle-standard}/src/main/appended-resources/META-INF/LICENSE (100%)
 rename tika-bundles/{tika-bundle-classic => tika-bundle-standard}/src/main/resources/META-INF/MANIFEST.MF (100%)
 create mode 100644 tika-bundles/tika-bundle-standard/src/test/java/org/apache/tika/bundle/BundleIT.java
 rename {tika-fuzzing/src/main => tika-bundles/tika-bundle-standard/src/test}/resources/log4j.properties (100%)
 rename {tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-pkg-module/src/test/resources/test-documents => tika-bundles/tika-bundle-standard/src/test/resources}/test-documents.zip (100%)
 rename {tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-ocr-module/src/test/resources/test-documents => tika-bundles/tika-bundle-standard/src/test/resources}/testOCR.jpg (100%)
 rename {tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/test/resources/test-documents => tika-bundles/tika-bundle-standard/src/test/resources}/testPPT.pptx (100%)
 create mode 100644 tika-bundles/tika-bundle-standard/test-bundles.xml
 create mode 100644 tika-core/src/main/assembly/test-jar-with-dependencies.xml
 create mode 100644 tika-core/src/main/java/org/apache/tika/config/ConfigBase.java
 create mode 100644 tika-core/src/main/java/org/apache/tika/exception/RuntimeSAXException.java
 delete mode 100644 tika-core/src/main/java/org/apache/tika/exception/WriteLimitReached.java
 create mode 100644 tika-core/src/main/java/org/apache/tika/exception/WriteLimitReachedException.java
 create mode 100644 tika-core/src/main/java/org/apache/tika/pipes/FetchEmitTuple.java
 create mode 100644 tika-core/src/main/java/org/apache/tika/pipes/HandlerConfig.java
 create mode 100644 tika-core/src/main/java/org/apache/tika/pipes/PipesClient.java
 create mode 100644 tika-core/src/main/java/org/apache/tika/pipes/PipesConfig.java
 create mode 100644 tika-core/src/main/java/org/apache/tika/pipes/PipesConfigBase.java
 create mode 100644 tika-core/src/main/java/org/apache/tika/pipes/PipesException.java
 create mode 100644 tika-core/src/main/java/org/apache/tika/pipes/PipesParser.java
 create mode 100644 tika-core/src/main/java/org/apache/tika/pipes/PipesResult.java
 create mode 100644 tika-core/src/main/java/org/apache/tika/pipes/PipesServer.java
 create mode 100644 tika-core/src/main/java/org/apache/tika/pipes/async/AsyncClientConfig.java
 create mode 100644 tika-core/src/main/java/org/apache/tika/pipes/async/AsyncConfig.java
 create mode 100644 tika-core/src/main/java/org/apache/tika/pipes/async/AsyncEmitter.java
 create mode 100644 tika-core/src/main/java/org/apache/tika/pipes/async/AsyncProcessor.java
 create mode 100644 tika-core/src/main/java/org/apache/tika/pipes/async/OfferLargerThanQueueSize.java
 delete mode 100644 tika-core/src/main/java/org/apache/tika/pipes/fetcher/FileSystemFetcher.java
 create mode 100644 tika-core/src/main/java/org/apache/tika/pipes/fetcher/fs/FileSystemFetcher.java
 delete mode 100644 tika-core/src/main/java/org/apache/tika/pipes/fetchiterator/EmptyFetchIterator.java
 delete mode 100644 tika-core/src/main/java/org/apache/tika/pipes/fetchiterator/FetchEmitTuple.java
 delete mode 100644 tika-core/src/main/java/org/apache/tika/pipes/fetchiterator/FetchIterator.java
 delete mode 100644 tika-core/src/main/java/org/apache/tika/pipes/fetchiterator/FileSystemFetchIterator.java
 create mode 100644 tika-core/src/main/java/org/apache/tika/pipes/pipesiterator/FileSystemPipesIterator.java
 create mode 100644 tika-core/src/main/java/org/apache/tika/pipes/pipesiterator/PipesIterator.java
 create mode 100644 tika-core/src/test/java/org/apache/tika/config/MockConfigTest.java
 create mode 100644 tika-core/src/test/java/org/apache/tika/config/TikaPipesConfigTest.java
 create mode 100644 tika-core/src/test/java/org/apache/tika/pipes/async/AsyncProcessorTest.java
 create mode 100644 tika-core/src/test/java/org/apache/tika/pipes/async/MockEmitter.java
 create mode 100644 tika-core/src/test/java/org/apache/tika/pipes/async/MockFetcher.java
 delete mode 100644 tika-core/src/test/java/org/apache/tika/pipes/emitter/MockEmitter.java
 delete mode 100644 tika-core/src/test/java/org/apache/tika/pipes/fetcher/FileSystemFetcherTest.java
 create mode 100644 tika-core/src/test/java/org/apache/tika/pipes/fetcher/fs/FileSystemFetcherTest.java
 delete mode 100644 tika-core/src/test/java/org/apache/tika/pipes/fetchiterator/FileSystemFetchIteratorTest.java
 create mode 100644 tika-core/src/test/java/org/apache/tika/pipes/pipesiterator/FileSystemPipesIteratorTest.java
 create mode 100644 tika-core/src/test/resources/org/apache/tika/config/TIKA-3137-field-mapping.xml
 delete mode 100644 tika-core/src/test/resources/org/apache/tika/config/fetch-iterator-config.xml
 delete mode 100644 tika-core/src/test/resources/org/apache/tika/config/fetch-iterator-multiple-config.xml
 create mode 100644 tika-core/src/test/resources/org/apache/tika/config/mockConfig.xml
 create mode 100644 tika-core/src/test/resources/org/apache/tika/config/pipes-iterator-config.xml
 create mode 100644 tika-core/src/test/resources/org/apache/tika/config/pipes-iterator-multiple-config.xml
 create mode 100644 tika-core/src/test/resources/test-documents/mock_times.xml
 create mode 100644 tika-example/src/main/java/org/apache/tika/example/TranscribeTranslateExample.java
 create mode 100644 tika-fuzzing/src/main/resources/log4j2.properties
 delete mode 100644 tika-langdetect/tika-langdetect-commons/pom.xml
 delete mode 100644 tika-langdetect/tika-langdetect-commons/src/test/java/org/apache/tika/langdetect/LanguageDetectorTest.java
 delete mode 100644 tika-langdetect/tika-langdetect-commons/src/test/resources/log4j.properties
 delete mode 100644 tika-langdetect/tika-langdetect-mitll-text/src/test/resources/log4j.properties
 create mode 100644 tika-langdetect/tika-langdetect-mitll-text/src/test/resources/log4j2.properties
 create mode 100644 tika-langdetect/tika-langdetect-test-commons/pom.xml
 create mode 100644 tika-langdetect/tika-langdetect-test-commons/src/main/java/org/apache/tika/langdetect/LanguageDetectorTest.java
 create mode 100644 tika-langdetect/tika-langdetect-test-commons/src/main/resources/log4j2.properties
 rename tika-langdetect/{tika-langdetect-commons/src/test => tika-langdetect-test-commons/src/main}/resources/org/apache/tika/langdetect/language-tests/da.test (100%)
 rename tika-langdetect/{tika-langdetect-commons/src/test => tika-langdetect-test-commons/src/main}/resources/org/apache/tika/langdetect/language-tests/de.test (100%)
 rename tika-langdetect/{tika-langdetect-commons/src/test => tika-langdetect-test-commons/src/main}/resources/org/apache/tika/langdetect/language-tests/el.test (100%)
 rename tika-langdetect/{tika-langdetect-commons/src/test => tika-langdetect-test-commons/src/main}/resources/org/apache/tika/langdetect/language-tests/en.test (100%)
 rename tika-langdetect/{tika-langdetect-commons/src/test => tika-langdetect-test-commons/src/main}/resources/org/apache/tika/langdetect/language-tests/es.test (100%)
 rename tika-langdetect/{tika-langdetect-commons/src/test => tika-langdetect-test-commons/src/main}/resources/org/apache/tika/langdetect/language-tests/et.test (100%)
 rename tika-langdetect/{tika-langdetect-commons/src/test => tika-langdetect-test-commons/src/main}/resources/org/apache/tika/langdetect/language-tests/fi.test (100%)
 rename tika-langdetect/{tika-langdetect-commons/src/test => tika-langdetect-test-commons/src/main}/resources/org/apache/tika/langdetect/language-tests/fr.test (100%)
 rename tika-langdetect/{tika-langdetect-commons/src/test => tika-langdetect-test-commons/src/main}/resources/org/apache/tika/langdetect/language-tests/it.test (100%)
 rename tika-langdetect/{tika-langdetect-commons/src/test => tika-langdetect-test-commons/src/main}/resources/org/apache/tika/langdetect/language-tests/ja.test (100%)
 rename tika-langdetect/{tika-langdetect-commons/src/test => tika-langdetect-test-commons/src/main}/resources/org/apache/tika/langdetect/language-tests/lt.test (100%)
 rename tika-langdetect/{tika-langdetect-commons/src/test => tika-langdetect-test-commons/src/main}/resources/org/apache/tika/langdetect/language-tests/nl.test (100%)
 rename tika-langdetect/{tika-langdetect-commons/src/test => tika-langdetect-test-commons/src/main}/resources/org/apache/tika/langdetect/language-tests/pt.test (100%)
 rename tika-langdetect/{tika-langdetect-commons/src/test => tika-langdetect-test-commons/src/main}/resources/org/apache/tika/langdetect/language-tests/sv.test (100%)
 rename tika-langdetect/{tika-langdetect-commons/src/test => tika-langdetect-test-commons/src/main}/resources/org/apache/tika/langdetect/language-tests/th.test (100%)
 rename tika-langdetect/{tika-langdetect-commons/src/test => tika-langdetect-test-commons/src/main}/resources/org/apache/tika/langdetect/language-tests/zh.test (100%)
 rename tika-langdetect/{tika-langdetect-commons/src/test => tika-langdetect-test-commons/src/main}/resources/org/apache/tika/langdetect/text-test.tsv (100%)
 delete mode 100644 tika-parsers/tika-parsers-advanced/pom.xml
 delete mode 100644 tika-parsers/tika-parsers-advanced/tika-age-recogniser/pom.xml
 delete mode 100644 tika-parsers/tika-parsers-advanced/tika-dl/pom.xml
 delete mode 100644 tika-parsers/tika-parsers-advanced/tika-parser-advancedmedia-module/pom.xml
 delete mode 100644 tika-parsers/tika-parsers-advanced/tika-parser-advancedmedia-module/src/main/java/org/apache/tika/parser/recognition/ObjectRecognitionParser.java
 delete mode 100644 tika-parsers/tika-parsers-advanced/tika-parser-advancedmedia-module/src/main/java/org/apache/tika/parser/recognition/tf/TensorflowImageRecParser.java
 delete mode 100644 tika-parsers/tika-parsers-advanced/tika-parser-advancedmedia-module/src/test/java/org/apache/tika/parser/recognition/tf/TensorflowImageRecParserTest.java
 delete mode 100644 tika-parsers/tika-parsers-advanced/tika-parser-advancedmedia-module/src/test/java/org/apache/tika/parser/recognition/tf/TensorflowVideoRecParserTest.java
 delete mode 100644 tika-parsers/tika-parsers-advanced/tika-parser-nlp-module/pom.xml
 delete mode 100644 tika-parsers/tika-parsers-advanced/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ctakes/CTAKESConfig.java
 delete mode 100644 tika-parsers/tika-parsers-advanced/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ctakes/CTAKESUtils.java
 delete mode 100644 tika-parsers/tika-parsers-advanced/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/geo/GeoTag.java
 delete mode 100644 tika-parsers/tika-parsers-advanced/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/geo/NameEntityExtractor.java
 delete mode 100644 tika-parsers/tika-parsers-advanced/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/journal/TEIDOMParser.java
 delete mode 100644 tika-parsers/tika-parsers-advanced/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ner/corenlp/CoreNLPNERecogniser.java
 delete mode 100644 tika-parsers/tika-parsers-advanced/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ner/grobid/GrobidNERecogniser.java
 delete mode 100644 tika-parsers/tika-parsers-advanced/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ner/mitie/MITIENERecogniser.java
 delete mode 100644 tika-parsers/tika-parsers-advanced/tika-parser-nlp-module/src/test/java/org/apache/tika/parser/ner/NamedEntityParserTest.java
 delete mode 100644 tika-parsers/tika-parsers-advanced/tika-parser-nlp-module/src/test/resources/org/apache/tika/parser/ner/opennlp/ModelGetter.groovy
 delete mode 100644 tika-parsers/tika-parsers-classic/pom.xml
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/pom.xml
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-apple-module/pom.xml
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/apple/AppleSingleFileParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/iwork/IWorkPackageParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/iwork/NumbersContentHandler.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/iwork/PagesContentHandler.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/iwork/iwana/IWork13PackageParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/iwork/iwana/IWork18PackageParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-audiovideo-module/pom.xml
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/audio/AudioParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/audio/MidiParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp3/ID3v1Handler.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp3/ID3v22Handler.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp3/ID3v23Handler.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp3/ID3v24Handler.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp3/ID3v2Frame.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp3/Mp3Parser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/video/FLVParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-audiovideo-module/src/test/java/org/apache/tika/parser/mp3/Mp3ParserTest.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-cad-module/pom.xml
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-cad-module/src/main/java/org/apache/tika/parser/dwg/DWGParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-code-module/pom.xml
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/asm/XHTMLClassVisitor.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/code/SourceCodeParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/executable/ExecutableParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-code-module/src/test/java/org/apache/tika/parser/code/SourceCodeParserTest.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-crypto-module/pom.xml
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-crypto-module/src/main/java/org/apache/tika/parser/crypto/Pkcs7Parser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-crypto-module/src/main/java/org/apache/tika/parser/crypto/TSDParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-digest-commons/pom.xml
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-font-module/pom.xml
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-html-commons/pom.xml
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-html-commons/src/main/java/org/apache/tika/sax/boilerpipe/BoilerpipeContentHandler.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-html-module/pom.xml
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-html-module/src/main/java/org/apache/tika/parser/html/HtmlHandler.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-html-module/src/test/java/org/apache/tika/parser/html/HtmlParserTest.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-image-module/pom.xml
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/BPGParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/ICNSParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/ImageMetadataExtractor.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/MetadataFields.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/PSDParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-jdbc-commons/pom.xml
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-jdbc-commons/src/main/java/org/apache/tika/parser/jdbc/JDBCTableReader.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-mail-commons/pom.xml
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-mail-module/pom.xml
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-mail-module/src/main/java/org/apache/tika/parser/mbox/MboxParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/pom.xml
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/detect/microsoft/POIFSContainerDetector.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/extractor/microsoft/MSEmbeddedStreamTranslator.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/AbstractListManager.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/AbstractPOIFSExtractor.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ExcelExtractor.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/HSLFExtractor.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/JackcessExtractor.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ListManager.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/OfficeParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/OldExcelParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/OutlookExtractor.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/SummaryExtractor.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/TNEFParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/WordExtractor.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmBlockInfo.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmCommons.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmDirectoryListingSet.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmExtractor.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmItsfHeader.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmItspHeader.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmLzxState.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmLzxcControlData.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmLzxcResetTable.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmPmgiHeader.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmPmglHeader.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/DirectoryListingEntry.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/ExtendedGUID.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/IndentUtil.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/OneNoteParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/OneNotePtr.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/AbstractOOXMLExtractor.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/OOXMLExtractorFactory.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/OOXMLTikaBodyPartHandler.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/OOXMLWordAndPowerPointTextHandler.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/POIXMLTextExtractorDecorator.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/SXSLFPowerPointExtractorDecorator.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/XSLFPowerPointExtractorDecorator.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/XSSFBExcelExtractorDecorator.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/XSSFExcelExtractorDecorator.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/XWPFWordExtractorDecorator.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/xps/XPSPageContentHandler.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/xslf/XSLFEventBasedPowerPointExtractor.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/xwpf/XWPFEventBasedWordExtractor.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/xwpf/ml2006/WordAndPowerPointTextPartHandler.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/rtf/TextExtractor.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/xml/AbstractXML2003Parser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/xml/SpreadsheetMLParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/xml/WordMLParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/ExcelParserTest.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/JackcessParserTest.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/chm/TestChmExtraction.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/ooxml/OOXMLParserTest.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/ooxml/SXSLFExtractorTest.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/ooxml/SXWPFExtractorTest.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/ooxml/xwpf/ml2006/Word2006MLParserTest.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/pst/OutlookPSTParserTest.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/rtf/RTFParserTest.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/xml/XML2003ParserTest.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-miscoffice-module/pom.xml
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/detect/ole/MiscOLEDetector.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/dif/DIFContentHandler.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/dif/DIFParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/epub/EpubParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/hwp/HwpTextExtractorV5.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/odf/OpenDocumentBodyHandler.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/odf/OpenDocumentParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/wordperfect/QPWTextExtractor.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/wordperfect/WP5DocumentAreaExtractor.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/wordperfect/WP6DocumentAreaExtractor.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/wordperfect/WPInputStream.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-news-module/pom.xml
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-news-module/src/main/java/org/apache/tika/parser/feed/FeedParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-news-module/src/main/java/org/apache/tika/parser/iptc/IptcAnpaParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-ocr-module/pom.xml
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-ocr-module/src/main/java/org/apache/tika/parser/ocr/TesseractOCRParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-ocr-module/src/test/java/org/apache/tika/parser/ocr/TesseractOCRParserTest.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-pdf-module/pom.xml
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/AbstractPDF2XHTML.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/ImageGraphicsEngine.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/PDF2XHTML.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/PDFEncodedStringDecoder.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/PDFParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/XFAExtractor.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-pdf-module/src/test/java/org/apache/tika/parser/pdf/PDFParserTest.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-pkg-module/pom.xml
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/CompressorParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/PackageParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-pkg-module/src/test/java/org/apache/tika/parser/pkg/AbstractPkgTest.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-pkg-module/src/test/java/org/apache/tika/parser/pkg/PackageParserTest.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-text-module/pom.xml
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/csv/CSVSniffer.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/csv/TextAndCSVParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/strings/Latin1StringsParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/strings/StringsParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/txt/CharsetDetector.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/txt/CharsetMatch.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/txt/CharsetRecog_mbcs.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-text-module/src/test/java/org/apache/tika/parser/strings/StringsParserTest.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-xml-module/pom.xml
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-xml-module/src/main/java/org/apache/tika/parser/xml/XMLParser.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-xml-module/src/main/java/org/apache/tika/parser/xml/XMLProfiler.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-xmp-commons/pom.xml
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-xmp-commons/src/test/java/org/apache/tika/parser/xmp/JempboxExtractorTest.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-zip-commons/pom.xml
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-zip-commons/src/main/java/org/apache/tika/detect/zip/IPADetector.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-zip-commons/src/main/java/org/apache/tika/detect/zip/StreamingDetectContext.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-zip-commons/src/main/java/org/apache/tika/detect/zip/ZipContainerDetectorBase.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-package/pom.xml
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-package/src/test/java/org/apache/tika/config/TikaEncodingDetectorTest.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-package/src/test/java/org/apache/tika/detect/TestContainerAwareDetector.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-package/src/test/java/org/apache/tika/parser/AutoDetectParserTest.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-package/src/test/java/org/apache/tika/parser/AutoDetectReaderParserTest.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-package/src/test/java/org/apache/tika/parser/RecursiveParserWrapperTest.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-package/src/test/java/org/apache/tika/parser/TestParsers.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-package/src/test/java/org/apache/tika/parser/TestXMLEntityExpansion.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-package/src/test/java/org/apache/tika/parser/fork/ForkParserIntegrationTest.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-package/src/test/java/org/apache/tika/parser/mail/RFC822ParserTest.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-package/src/test/java/org/apache/tika/parser/pdf/PDFParserTest.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-package/src/test/java/org/apache/tika/parser/pkg/Seven7ParserTest.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-package/src/test/java/org/apache/tika/parser/pkg/ZipParserTest.java
 delete mode 100644 tika-parsers/tika-parsers-classic/tika-parsers-classic-package/src/test/resources/org/apache/tika/parser/TIKA-3137-include.xml
 create mode 100644 tika-parsers/tika-parsers-ml/pom.xml
 create mode 100644 tika-parsers/tika-parsers-ml/tika-age-recogniser/pom.xml
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-age-recogniser/src/main/java/org/apache/tika/parser/recognition/AgeRecogniser.java (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-age-recogniser/src/main/java/org/apache/tika/parser/recognition/AgeRecogniserConfig.java (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-age-recogniser/src/test/java/org/apache/tika/parser/recognition/AgeRecogniserTest.java (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-age-recogniser/src/test/resources/org/apache/tika/parser/recognition/tika-config-age.xml (100%)
 create mode 100644 tika-parsers/tika-parsers-ml/tika-dl/pom.xml
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-dl/src/main/java/org/apache/tika/dl/imagerec/DL4JInceptionV3Net.java (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-dl/src/main/java/org/apache/tika/dl/imagerec/DL4JVGG16Net.java (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-dl/src/test/java/org/apache/tika/dl/imagerec/DL4JInceptionV3NetTest.java (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-dl/src/test/java/org/apache/tika/dl/imagerec/DL4JVGG16NetTest.java (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-dl/src/test/resources/org/apache/tika/dl/imagerec/cat.jpg (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-dl/src/test/resources/org/apache/tika/dl/imagerec/dl4j-inception3-config.xml (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-dl/src/test/resources/org/apache/tika/dl/imagerec/dl4j-vgg16-config.xml (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-dl/src/test/resources/org/apache/tika/dl/imagerec/lion.jpg (100%)
 create mode 100644 tika-parsers/tika-parsers-ml/tika-parser-advancedmedia-module/pom.xml
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-advancedmedia-module/src/main/java/org/apache/tika/parser/captioning/CaptionObject.java (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-advancedmedia-module/src/main/java/org/apache/tika/parser/captioning/tf/TensorflowRESTCaptioner.java (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-advancedmedia-module/src/main/java/org/apache/tika/parser/pot/PooledTimeSeriesParser.java (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-advancedmedia-module/src/main/java/org/apache/tika/parser/recognition/ObjectRecogniser.java (100%)
 create mode 100644 tika-parsers/tika-parsers-ml/tika-parser-advancedmedia-module/src/main/java/org/apache/tika/parser/recognition/ObjectRecognitionParser.java
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-advancedmedia-module/src/main/java/org/apache/tika/parser/recognition/RecognisedObject.java (100%)
 create mode 100644 tika-parsers/tika-parsers-ml/tika-parser-advancedmedia-module/src/main/java/org/apache/tika/parser/recognition/tf/TensorflowImageRecParser.java
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-advancedmedia-module/src/main/java/org/apache/tika/parser/recognition/tf/TensorflowRESTRecogniser.java (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-advancedmedia-module/src/main/java/org/apache/tika/parser/recognition/tf/TensorflowRESTVideoRecogniser.java (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-advancedmedia-module/src/main/resources/org/apache/tika/parser/captioning/tf/caption_generator.py (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-advancedmedia-module/src/main/resources/org/apache/tika/parser/captioning/tf/im2txtapi.py (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-advancedmedia-module/src/main/resources/org/apache/tika/parser/captioning/tf/model_info.xml (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-advancedmedia-module/src/main/resources/org/apache/tika/parser/captioning/tf/model_wrapper.py (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-advancedmedia-module/src/main/resources/org/apache/tika/parser/captioning/tf/vocabulary.py (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-advancedmedia-module/src/main/resources/org/apache/tika/parser/recognition/tf/inception_v4.py (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-advancedmedia-module/src/main/resources/org/apache/tika/parser/recognition/tf/inceptionapi.py (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-advancedmedia-module/src/main/resources/org/apache/tika/parser/recognition/tf/video_util.py (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-advancedmedia-module/src/main/resources/org/apache/tika/parser/recognition/tika-config-tflow-im2txt-rest.xml (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-advancedmedia-module/src/main/resources/org/apache/tika/parser/recognition/tika-config-tflow-rest.xml (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-advancedmedia-module/src/main/resources/org/apache/tika/parser/recognition/tika-config-tflow-video-rest.xml (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-advancedmedia-module/src/main/resources/org/apache/tika/parser/recognition/tika-config-tflow.xml (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-advancedmedia-module/src/test/java/org/apache/tika/parser/recognition/ObjectRecognitionParserTest.java (100%)
 create mode 100644 tika-parsers/tika-parsers-ml/tika-parser-advancedmedia-module/src/test/java/org/apache/tika/parser/recognition/tf/TensorflowImageRecParserTest.java
 create mode 100644 tika-parsers/tika-parsers-ml/tika-parser-advancedmedia-module/src/test/java/org/apache/tika/parser/recognition/tf/TensorflowVideoRecParserTest.java
 create mode 100644 tika-parsers/tika-parsers-ml/tika-parser-nlp-module/pom.xml
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ctakes/CTAKESAnnotationProperty.java (100%)
 create mode 100644 tika-parsers/tika-parsers-ml/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ctakes/CTAKESConfig.java
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ctakes/CTAKESContentHandler.java (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ctakes/CTAKESParser.java (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ctakes/CTAKESSerializer.java (100%)
 create mode 100644 tika-parsers/tika-parsers-ml/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ctakes/CTAKESUtils.java
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/geo/GeoParser.java (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/geo/GeoParserConfig.java (100%)
 create mode 100644 tika-parsers/tika-parsers-ml/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/geo/GeoTag.java
 create mode 100644 tika-parsers/tika-parsers-ml/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/geo/NameEntityExtractor.java
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/geo/gazetteer/GeoGazetteerClient.java (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/geo/gazetteer/Location.java (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/journal/GrobidRESTParser.java (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/journal/JournalParser.java (100%)
 create mode 100644 tika-parsers/tika-parsers-ml/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/journal/TEIDOMParser.java
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ner/NERecogniser.java (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ner/NamedEntityParser.java (100%)
 create mode 100644 tika-parsers/tika-parsers-ml/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ner/corenlp/CoreNLPNERecogniser.java
 create mode 100644 tika-parsers/tika-parsers-ml/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ner/grobid/GrobidNERecogniser.java
 create mode 100644 tika-parsers/tika-parsers-ml/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ner/mitie/MITIENERecogniser.java
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ner/nltk/NLTKNERecogniser.java (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ner/opennlp/OpenNLPNERecogniser.java (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ner/opennlp/OpenNLPNameFinder.java (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ner/regex/RegexNERecogniser.java (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/sentiment/SentimentAnalysisParser.java (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/main/resources/META-INF/services/org.apache.tika.parser.Parser (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/main/resources/org/apache/tika/parser/ctakes/CTAKESConfig.properties (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/main/resources/org/apache/tika/parser/geo/GeoTopicConfig.properties (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/main/resources/org/apache/tika/parser/journal/GrobidExtractor.properties (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/main/resources/org/apache/tika/parser/ner/grobid/GrobidServer.properties (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/main/resources/org/apache/tika/parser/ner/nltk/NLTKServer.properties (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/main/resources/org/apache/tika/parser/ner/regex/ner-regex.txt (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/test/java/org/apache/tika/parser/geo/GeoParserTest.java (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/test/java/org/apache/tika/parser/journal/JournalParserTest.java (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/test/java/org/apache/tika/parser/journal/TEITest.java (100%)
 create mode 100644 tika-parsers/tika-parsers-ml/tika-parser-nlp-module/src/test/java/org/apache/tika/parser/ner/NamedEntityParserTest.java
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/test/java/org/apache/tika/parser/ner/nltk/NLTKNERecogniserTest.java (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/test/java/org/apache/tika/parser/ner/regex/RegexNERecogniserTest.java (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/test/java/org/apache/tika/parser/sentiment/SentimentAnalysisParserTest.java (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/test/resources/org/apache/tika/config/TIKA-3078-geo.topic.GeoParser.xml (100%)
 create mode 100644 tika-parsers/tika-parsers-ml/tika-parser-nlp-module/src/test/resources/org/apache/tika/parser/ner/opennlp/ModelGetter.groovy
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/test/resources/org/apache/tika/parser/ner/opennlp/get-models.sh (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/test/resources/org/apache/tika/parser/ner/regex/ner-regex.txt (100%)
 rename tika-parsers/{tika-parsers-advanced/tika-parser-nlp-module/src/test/resources/org/apache/tika/parser/ner => tika-parsers-ml/tika-parser-nlp-module/src/test/resources/org/apache/tika/parser/ner/regex}/tika-config.xml (100%)
 rename tika-parsers/{tika-parsers-advanced/tika-parser-nlp-module/src/test/resources/org/apache/tika/parser/ner/regex => tika-parsers-ml/tika-parser-nlp-module/src/test/resources/org/apache/tika/parser/ner}/tika-config.xml (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/test/resources/org/apache/tika/parser/sentiment/tika-config-sentiment-opennlp-cat.xml (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/test/resources/org/apache/tika/parser/sentiment/tika-config-sentiment-opennlp.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules/tika-parser-pdf-module => tika-parsers-ml/tika-parser-nlp-module}/src/test/resources/test-documents/testJournalParser.pdf (100%)
 rename tika-parsers/{tika-parsers-advanced => tika-parsers-ml}/tika-parser-nlp-module/src/test/resources/test-documents/testTEI.xml (100%)
 create mode 100644 tika-parsers/tika-parsers-ml/tika-transcribe-aws/pom.xml
 create mode 100644 tika-parsers/tika-parsers-ml/tika-transcribe-aws/src/main/java/org/apache/tika/parser/transcribe/aws/AmazonTranscribe.java
 create mode 100644 tika-parsers/tika-parsers-ml/tika-transcribe-aws/src/test/java/org/apache/tika/parser/transcribe/aws/AmazonTranscribeTest.java
 create mode 100644 tika-parsers/tika-parsers-ml/tika-transcribe-aws/src/test/resources/test-documents/ShortAudioSampleFrench.mp3
 create mode 100644 tika-parsers/tika-parsers-ml/tika-transcribe-aws/src/test/resources/test-documents/de-DE_(We_Are_At_School_x2).mp3
 create mode 100644 tika-parsers/tika-parsers-ml/tika-transcribe-aws/src/test/resources/test-documents/en-AU_(A_Little_Bottle_Of_Water).mp3
 create mode 100644 tika-parsers/tika-parsers-ml/tika-transcribe-aws/src/test/resources/test-documents/en-GB_(A_Little_Bottle_Of_Water).mp3
 create mode 100644 tika-parsers/tika-parsers-ml/tika-transcribe-aws/src/test/resources/test-documents/en-US_(A_Little_Bottle_Of_Water).mp3
 create mode 100644 tika-parsers/tika-parsers-ml/tika-transcribe-aws/src/test/resources/test-documents/en-US_(Hi).mp4
 create mode 100644 tika-parsers/tika-parsers-ml/tika-transcribe-aws/src/test/resources/test-documents/it-IT_(We_Are_Having_Class_x2).mp3
 create mode 100644 tika-parsers/tika-parsers-ml/tika-transcribe-aws/src/test/resources/test-documents/ja-JP_(We_Are_At_School).mp3
 create mode 100644 tika-parsers/tika-parsers-ml/tika-transcribe-aws/src/test/resources/test-documents/ko-KR_(Annyeonghaseyo).mp4
 create mode 100644 tika-parsers/tika-parsers-ml/tika-transcribe-aws/src/test/resources/test-documents/ko-KR_(We_Are_Having_Class_x2).mp3
 create mode 100644 tika-parsers/tika-parsers-ml/tika-transcribe-aws/src/test/resources/test-documents/pt-BR_(We_Are_At_School).mp3
 create mode 100644 tika-parsers/tika-parsers-ml/tika-transcribe-aws/src/test/resources/tika-config-aws-transcribe.xml
 create mode 100644 tika-parsers/tika-parsers-standard/pom.xml
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/pom.xml
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/pom.xml
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/main/java/org/apache/tika/detect/apple/BPListDetector.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/main/java/org/apache/tika/detect/apple/IWorkDetector.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/apple/AppleSingleFileParser.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/main/java/org/apache/tika/parser/apple/PListParser.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/main/java/org/apache/tika/parser/iwork/AutoPageNumberUtils.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/iwork/IWorkPackageParser.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/main/java/org/apache/tika/parser/iwork/KeynoteContentHandler.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/iwork/NumbersContentHandler.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/iwork/PagesContentHandler.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/iwork/iwana/IWork13PackageParser.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/iwork/iwana/IWork18PackageParser.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/main/resources/META-INF/services/org.apache.tika.detect.Detector (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/main/resources/META-INF/services/org.apache.tika.detect.zip.ZipContainerDetector (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/main/resources/META-INF/services/org.apache.tika.parser.Parser (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/test/java/org/apache/tika/parser/apple/PListParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/test/java/org/apache/tika/parser/iwork/AutoPageNumberUtilsTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/test/java/org/apache/tika/parser/iwork/IWorkParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/test/java/org/apache/tika/parser/iwork/iwana/IWork13ParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/test/resources/test-documents/tableHeaders.numbers (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/test/resources/test-documents/tableNames.numbers (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/test/resources/test-documents/testAppleSingleFile.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/test/resources/test-documents/testBPList.bplist (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/test/resources/test-documents/testBulletPoints.key (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/test/resources/test-documents/testKeynote.key (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/test/resources/test-documents/testKeynote2013.key (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/test/resources/test-documents/testKeynote2018.key (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/test/resources/test-documents/testMasterSlideTable.key (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/test/resources/test-documents/testNumbers.numbers (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/test/resources/test-documents/testNumbers2013.numbers (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/test/resources/test-documents/testNumbersCharts.numbers (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/test/resources/test-documents/testPages.pages (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/test/resources/test-documents/testPages2013.pages (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/test/resources/test-documents/testPagesComments.pages (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/test/resources/test-documents/testPagesHeadersFootersAlphaLower.pages (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/test/resources/test-documents/testPagesHeadersFootersAlphaUpper.pages (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/test/resources/test-documents/testPagesHeadersFootersFootnotes.pages (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/test/resources/test-documents/testPagesHeadersFootersRomanLower.pages (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/test/resources/test-documents/testPagesHeadersFootersRomanUpper.pages (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/test/resources/test-documents/testPagesLayout.pages (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/test/resources/test-documents/testPagesPwdProtected.pages (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/test/resources/test-documents/testTables.key (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/test/resources/test-documents/testTextBoxes.key (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-apple-module/src/test/resources/test-documents/testWEBARCHIVE.webarchive (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/pom.xml
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/audio/AudioParser.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/audio/MidiParser.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp3/AudioFrame.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp3/CompositeTagHandler.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp3/ID3Tags.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp3/ID3v1Handler.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp3/ID3v22Handler.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp3/ID3v23Handler.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp3/ID3v24Handler.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp3/ID3v2Frame.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp3/LyricsHandler.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp3/MP3Frame.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp3/Mp3Parser.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp3/MpegStream.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp4/ISO6709Extractor.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp4/MP4Parser.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/video/FLVParser.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/main/resources/META-INF/services/org.apache.tika.parser.Parser (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/test/java/org/apache/tika/parser/audio/AudioParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/test/java/org/apache/tika/parser/audio/MidiParserTest.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/test/java/org/apache/tika/parser/mp3/Mp3ParserTest.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/test/java/org/apache/tika/parser/mp3/MpegStreamTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/test/java/org/apache/tika/parser/mp4/MP4ParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/test/java/org/apache/tika/parser/video/FLVParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/test/resources/test-documents/test2.mp3 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/test/resources/test-documents/testAIFF.aif (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/test/resources/test-documents/testAU.au (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/test/resources/test-documents/testFLV.flv (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/test/resources/test-documents/testMID.mid (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/test/resources/test-documents/testMP3i18n.mp3 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/test/resources/test-documents/testMP3i18n_truncated.mp3 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/test/resources/test-documents/testMP3id3v1.mp3 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/test/resources/test-documents/testMP3id3v1_v2.mp3 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/test/resources/test-documents/testMP3id3v2.mp3 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/test/resources/test-documents/testMP3id3v24.mp3 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/test/resources/test-documents/testMP3lyrics.mp3 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/test/resources/test-documents/testMP3noid3.mp3 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/test/resources/test-documents/testMP3truncated.mp3 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/test/resources/test-documents/testMP4.m4a (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/test/resources/test-documents/testMP4_truncated.m4a (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/test/resources/test-documents/testNakedUTF16BOM.mp3 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-audiovideo-module/src/test/resources/test-documents/testWAV.wav (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-cad-module/pom.xml
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-cad-module/src/main/java/org/apache/tika/parser/dwg/DWGParser.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-cad-module/src/main/java/org/apache/tika/parser/prt/PRTParser.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-cad-module/src/main/resources/META-INF/services/org.apache.tika.parser.Parser (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-cad-module/src/test/java/org/apache/tika/parser/dwg/DWGParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-cad-module/src/test/java/org/apache/tika/parser/prt/PRTParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-cad-module/src/test/resources/test-documents/testCADKEY.prt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-cad-module/src/test/resources/test-documents/testCADKEY2.prt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-cad-module/src/test/resources/test-documents/testDWG2000.dwg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-cad-module/src/test/resources/test-documents/testDWG2004.dwg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-cad-module/src/test/resources/test-documents/testDWG2004_no_header.dwg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-cad-module/src/test/resources/test-documents/testDWG2007.dwg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-cad-module/src/test/resources/test-documents/testDWG2010.dwg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-cad-module/src/test/resources/test-documents/testDWG2010_custom_props.dwg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-cad-module/src/test/resources/test-documents/testDWGmech2004.dwg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-cad-module/src/test/resources/test-documents/testDWGmech2004DX.dwg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-cad-module/src/test/resources/test-documents/testDWGmech2005.dwg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-cad-module/src/test/resources/test-documents/testDWGmech2006.dwg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-cad-module/src/test/resources/test-documents/testDWGmech2007.dwg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-cad-module/src/test/resources/test-documents/testDWGmech2008.dwg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-cad-module/src/test/resources/test-documents/testDWGmech2009.dwg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-cad-module/src/test/resources/test-documents/testDWGmech2010.dwg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-cad-module/src/test/resources/test-documents/testDWGmech2011.dwg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-cad-module/src/test/resources/test-documents/testDWGmech6.dwg (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/pom.xml
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/main/java/org/apache/tika/parser/asm/ClassParser.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/asm/XHTMLClassVisitor.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/code/SourceCodeParser.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/executable/ExecutableParser.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/main/java/org/apache/tika/parser/mat/MatParser.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/main/java/org/apache/tika/parser/sas/SAS7BDATParser.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/main/resources/META-INF/services/org.apache.tika.parser.Parser (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/test/java/org/apache/tika/parser/asm/ClassParserTest.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/test/java/org/apache/tika/parser/code/SourceCodeParserTest.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/test/java/org/apache/tika/parser/executable/ExecutableParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/test/java/org/apache/tika/parser/mat/MatParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/test/java/org/apache/tika/parser/sas/SAS7BDATParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/test/resources/test-documents/AppleSingleFileParser.class (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/test/resources/test-documents/AutoDetectParser.class (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/test/resources/test-documents/breidamerkurjokull_radar_profiles_2009.mat (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/test/resources/test-documents/test-columnar.sas.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/test/resources/test-documents/test-columnar.sas7bdat (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/test/resources/test-documents/testC.c (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/test/resources/test-documents/testCPP.cpp (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/test/resources/test-documents/testGROOVY.groovy (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/test/resources/test-documents/testJAVA.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/test/resources/test-documents/testJS.js (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/test/resources/test-documents/testJS_HTML.js (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/test/resources/test-documents/testLinux-arm-32le (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/test/resources/test-documents/testLinux-mips-32be (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/test/resources/test-documents/testLinux-mips-32le (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/test/resources/test-documents/testLinux-ppc-32be (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/test/resources/test-documents/testLinux-x86-32 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/test/resources/test-documents/testLinux-x86-64 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/test/resources/test-documents/testMATLAB.m (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/test/resources/test-documents/testMATLAB_barcast.m (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/test/resources/test-documents/testMATLAB_wtsgaus.m (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/test/resources/test-documents/testSAS.sas (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/test/resources/test-documents/testSAS.sas7bdat (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/test/resources/test-documents/testSAS.sd2 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/test/resources/test-documents/testSAS.xpt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/test/resources/test-documents/testSAS2.sas (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/test/resources/test-documents/testWindows-x86-32.exe (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-code-module/src/test/resources/test-documents/test_mat_text.mat (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-crypto-module/pom.xml
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-crypto-module/src/main/java/org/apache/tika/parser/crypto/Pkcs7Parser.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-crypto-module/src/main/java/org/apache/tika/parser/crypto/TSDParser.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-crypto-module/src/main/resources/META-INF/services/org.apache.tika.parser.Parser (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-crypto-module/src/test/java/org/apache/tika/parser/crypto/Pkcs7ParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-crypto-module/src/test/java/org/apache/tika/parser/crypto/TSDParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-crypto-module/src/test/resources/test-documents/MANIFEST.XML.TSD (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-crypto-module/src/test/resources/test-documents/Test1.txt.tsd (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-crypto-module/src/test/resources/test-documents/Test2.txt.tsd (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-crypto-module/src/test/resources/test-documents/Test3.docx.tsd (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-crypto-module/src/test/resources/test-documents/Test4.pdf.tsd (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-crypto-module/src/test/resources/test-documents/Test5.PNG.tsd (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-modules/tika-parser-crypto-module}/src/test/resources/test-documents/testCERT.der (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-modules/tika-parser-crypto-module}/src/test/resources/test-documents/testCERT.pem (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-modules/tika-parser-crypto-module}/src/test/resources/test-documents/testDSAKEY.der (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-modules/tika-parser-crypto-module}/src/test/resources/test-documents/testDSAKEY.pem (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-modules/tika-parser-crypto-module}/src/test/resources/test-documents/testDSAPARAMS.pem (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-crypto-module/src/test/resources/test-documents/testDetached.p7s (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-modules/tika-parser-crypto-module}/src/test/resources/test-documents/testECKEY.der (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-modules/tika-parser-crypto-module}/src/test/resources/test-documents/testECKEY.pem (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-modules/tika-parser-crypto-module}/src/test/resources/test-documents/testECPARAMS.pem (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-modules/tika-parser-crypto-module}/src/test/resources/test-documents/testRSAKEY.der (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-modules/tika-parser-crypto-module}/src/test/resources/test-documents/testRSAKEY.pem (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-crypto-module/src/test/resources/test-documents/testTSD_broken_pdf.tsd (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-digest-commons/pom.xml
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-digest-commons/src/main/java/org/apache/tika/parser/digestutils/BouncyCastleDigester.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-digest-commons/src/main/java/org/apache/tika/parser/digestutils/CommonsDigester.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-font-module/pom.xml
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-font-module/src/main/java/org/apache/tika/parser/font/AdobeFontMetricParser.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-font-module/src/main/java/org/apache/tika/parser/font/TrueTypeParser.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-font-module/src/main/resources/META-INF/services/org.apache.tika.parser.Parser (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-font-module/src/test/java/org/apache/tika/parser/font/FontParsersTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-font-module/src/test/resources/test-documents/testAFM.afm (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-font-module/src/test/resources/test-documents/testTrueType3.ttf (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-html-commons/pom.xml
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-html-commons/src/main/java/org/apache/tika/sax/boilerpipe/BoilerpipeContentHandler.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-html-module/pom.xml
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/main/java/org/apache/tika/parser/html/DataURIScheme.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/main/java/org/apache/tika/parser/html/DataURISchemeParseException.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/main/java/org/apache/tika/parser/html/DataURISchemeUtil.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/main/java/org/apache/tika/parser/html/DefaultHtmlMapper.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/main/java/org/apache/tika/parser/html/HtmlEncodingDetector.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-html-module/src/main/java/org/apache/tika/parser/html/HtmlHandler.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/main/java/org/apache/tika/parser/html/HtmlMapper.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/main/java/org/apache/tika/parser/html/HtmlParser.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/main/java/org/apache/tika/parser/html/IdentityHtmlMapper.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/main/java/org/apache/tika/parser/html/XHTMLDowngradeHandler.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/main/java/org/apache/tika/parser/html/charsetdetector/CharsetAliases.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/main/java/org/apache/tika/parser/html/charsetdetector/CharsetDetectionResult.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/main/java/org/apache/tika/parser/html/charsetdetector/MetaProcessor.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/main/java/org/apache/tika/parser/html/charsetdetector/PreScanner.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/main/java/org/apache/tika/parser/html/charsetdetector/StandardHtmlEncodingDetector.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/main/java/org/apache/tika/parser/html/charsetdetector/charsets/ReplacementCharset.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/main/java/org/apache/tika/parser/html/charsetdetector/charsets/XUserDefinedCharset.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/main/resources/META-INF/services/org.apache.tika.detect.EncodingDetector (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/main/resources/META-INF/services/org.apache.tika.parser.Parser (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/main/resources/org/apache/tika/parser/html/StandardCharsets_unsupported_by_IANA.txt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/test/java/org/apache/tika/parser/html/DataURISchemeParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/test/java/org/apache/tika/parser/html/HtmlEncodingDetectorTest.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-html-module/src/test/java/org/apache/tika/parser/html/HtmlParserTest.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/test/java/org/apache/tika/parser/html/StandardHtmlEncodingDetectorTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/test/resources/org/apache/tika/parser/html/tika-config.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/test/resources/test-documents/big-preamble.html (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/test/resources/test-documents/boilerplate-whitespace.html (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/test/resources/test-documents/boilerplate.html (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/test/resources/test-documents/testBoilerplateMissingSpace.html (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/test/resources/test-documents/testHTML.html (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/test/resources/test-documents/testHTMLBadScript.html (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/test/resources/test-documents/testHTMLGoodScript.html (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/test/resources/test-documents/testHTMLNoisyMetaEncoding_1.html (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/test/resources/test-documents/testHTMLNoisyMetaEncoding_2.html (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/test/resources/test-documents/testHTMLNoisyMetaEncoding_3.html (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/test/resources/test-documents/testHTMLNoisyMetaEncoding_4.html (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/test/resources/test-documents/testHTML_charset_utf16le.html (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/test/resources/test-documents/testHTML_charset_utf8.html (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/test/resources/test-documents/testHTML_embedded_data_uri_js.html (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/test/resources/test-documents/testHTML_embedded_img.html (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/test/resources/test-documents/testHTML_embedded_img_in_js.html (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/test/resources/test-documents/testHTML_head.html (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/test/resources/test-documents/testHTML_utf8.html (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/test/resources/test-documents/testUserDefinedCharset.mhtml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/test/resources/test-documents/testXHTML.html (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-html-module/src/test/resources/test-documents/tika434.html (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/pom.xml
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/AbstractImageParser.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/BPGParser.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/HeifParser.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/ICNSParser.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/ICNSType.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/ImageMetadataExtractor.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/ImageParser.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/JpegParser.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/MetadataFields.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/PSDParser.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/TiffParser.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/WebPParser.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/main/resources/META-INF/services/org.apache.tika.parser.Parser (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/java/org/apache/tika/parser/image/HeifParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/java/org/apache/tika/parser/image/ICNSParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/java/org/apache/tika/parser/image/ImageMetadataExtractorTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/java/org/apache/tika/parser/image/ImageParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/java/org/apache/tika/parser/image/JpegParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/java/org/apache/tika/parser/image/PSDParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/java/org/apache/tika/parser/image/WebPParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/resources/org/apache/tika/parser/image/tika-config-TIKA-3243.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/resources/test-documents/IMG_1034.heic (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/resources/test-documents/testAVIF.avif (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/resources/test-documents/testBMP.bmp (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/resources/test-documents/testBPG.bpg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/resources/test-documents/testBPG_GEO.bpg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/resources/test-documents/testBPG_commented.bpg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/resources/test-documents/testBPG_commented_xnviewmp026.bpg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/resources/test-documents/testGIF.gif (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/resources/test-documents/testHEIF.heic (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/resources/test-documents/testICNS.icns (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/resources/test-documents/testICNS_basic.icns (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/resources/test-documents/testJBIG2.jb2 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/resources/test-documents/testJPEG.jp2 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/resources/test-documents/testJPEG.jpg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/resources/test-documents/testJPEG_EXIF.jpg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/resources/test-documents/testJPEG_EXIF_emptyDateTime.jpg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/resources/test-documents/testJPEG_GEO.jpg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/resources/test-documents/testJPEG_GEO_2.jpg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/resources/test-documents/testJPEG_oddTagComponent.jpg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/resources/test-documents/testPNG.png (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/resources/test-documents/testPSD.psd (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/resources/test-documents/testPSD2.psd (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/resources/test-documents/testPSD_xmp.psd (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/resources/test-documents/testTIFF.tif (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/resources/test-documents/testWEBP.webp (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/resources/test-documents/testWebp_Alpha_Lossless.webp (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-image-module/src/test/resources/test-documents/testWebp_Alpha_Lossy.webp (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-jdbc-commons/pom.xml
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-jdbc-commons/src/main/java/org/apache/tika/parser/jdbc/AbstractDBParser.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-jdbc-commons/src/main/java/org/apache/tika/parser/jdbc/JDBCTableReader.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-mail-commons/pom.xml
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-commons/src/main/java/org/apache/tika/parser/mailcommons/MailDateParser.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-commons/src/main/java/org/apache/tika/parser/mailcommons/MailUtil.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-commons/src/test/java/org/apache/tika/parser/mailcommons/MailUtilTest.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-mail-module/pom.xml
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/main/java/org/apache/tika/parser/mail/MailContentHandler.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/main/java/org/apache/tika/parser/mail/RFC822Parser.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-mail-module/src/main/java/org/apache/tika/parser/mbox/MboxParser.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/main/resources/META-INF/services/org.apache.tika.parser.Parser (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/java/org/apache/tika/parser/mail/RFC822ParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/java/org/apache/tika/parser/mbox/MboxParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/resources/org/apache/tika/parser/mail/tika-config-extract-all-alternatives.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/resources/test-documents/complex.mbox (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/resources/test-documents/headers.mbox (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/resources/test-documents/multiline.mbox (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/resources/test-documents/quoted.mbox (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/resources/test-documents/simple.mbox (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/resources/test-documents/single_mail.mbox (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/resources/test-documents/testEmailWithPNGAtt.eml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/resources/test-documents/testGroupWiseEml.eml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/resources/test-documents/testMBOX_complex.mbox (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/resources/test-documents/testMBOX_lengthy_x-headers.mbox (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/resources/test-documents/testRFC822 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/resources/test-documents/testRFC822-CC-BCC (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/resources/test-documents/testRFC822-big (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/resources/test-documents/testRFC822-limitedheaders (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/resources/test-documents/testRFC822-mixed-simple (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/resources/test-documents/testRFC822-mixed-with-pdf-inline (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/resources/test-documents/testRFC822-multipart (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/resources/test-documents/testRFC822-txt-body (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/resources/test-documents/testRFC822_base64 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/resources/test-documents/testRFC822_date_utf8 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/resources/test-documents/testRFC822_dkim.eml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/resources/test-documents/testRFC822_eml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/resources/test-documents/testRFC822_encrypted_zip (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/resources/test-documents/testRFC822_i18nheaders (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/resources/test-documents/testRFC822_normal_zip (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/resources/test-documents/testRFC822_oddfrom (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/resources/test-documents/testRFC822_quoted (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/resources/test-documents/testRFC822_simple_inline_body.txt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-mail-module/src/test/resources/test-documents/testRFC822_x-.eml (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/pom.xml
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/detect/microsoft/POIFSContainerDetector.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/detect/microsoft/ooxml/OPCPackageDetector.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/extractor/microsoft/MSEmbeddedStreamTranslator.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/AbstractListManager.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/AbstractOfficeParser.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/AbstractPOIFSExtractor.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/Cell.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/CellDecorator.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/EMFParser.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ExcelExtractor.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/FormattingUtils.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/HSLFExtractor.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/JackcessExtractor.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/JackcessParser.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/LinkedCell.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ListManager.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/MSOwnerFileParser.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/NumberCell.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/OfficeParser.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/OfficeParserConfig.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/OldExcelParser.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/OutlookExtractor.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/SummaryExtractor.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/TNEFParser.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/TextCell.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/TikaExcelDataFormatter.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/TikaExcelGeneralFormat.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/WMFParser.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/WordExtractor.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmAccessor.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmAssert.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmBlockInfo.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmCommons.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmConstants.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmDirectoryListingSet.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmExtractor.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmItsfHeader.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmItspHeader.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmLzxBlock.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmLzxState.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmLzxcControlData.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmLzxcResetTable.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmParser.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmParsingException.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmPmgiHeader.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmPmglHeader.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmSection.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmWrapper.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/DirectoryListingEntry.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/CheckedFileNodePushBack.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/CompactID.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/Error.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/ExtendedGUID.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/FileChunkReference.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/FileDataStoreObject.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/FileDataStoreObjectReference.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/FileNode.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/FileNodeList.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/FileNodeListHeader.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/FileNodePtr.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/FileNodePtrBackPush.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/FileNodeUnion.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/FndStructureConstants.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/GUID.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/GlobalIdTableEntry2FNDX.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/GlobalIdTableEntry3FNDX.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/GlobalIdTableEntryFNDX.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/GlobalIdTableStartFNDX.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/IndentUtil.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/Int24.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/JCID.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/JCIDPropertySetTypeEnum.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/ObjectDeclarationWithRefCount.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/ObjectDeclarationWithRefCountBody.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/ObjectInfoDependencyOverrideData.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/ObjectInfoDependencyOverrides.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/ObjectRevisionWithRefCountFNDX.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/ObjectSpaceObjectPropSet.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/ObjectSpaceObjectStreamOfOIDsOSIDsOrContextIDs.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/ObjectStreamCounters.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/OneNoteDirectFileResource.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/OneNoteDocument.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/OneNoteHeader.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/OneNoteLegacyDumpStrings.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/OneNoteParser.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/OneNotePropertyEnum.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/OneNotePropertyId.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/OneNotePtr.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/OneNoteTreeWalker.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/OneNoteTreeWalkerOptions.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/PropertyIDType.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/PropertySet.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/PropertyValue.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/Revision.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/RevisionManifest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/RevisionManifestListStart.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/RevisionRoleDeclaration.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/RootObjectReference.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/RootObjectReferenceBase.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/AbstractOOXMLExtractor.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/MetadataExtractor.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/OOXMLExtractor.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/OOXMLExtractorFactory.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/OOXMLParser.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/OOXMLTikaBodyPartHandler.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/OOXMLWordAndPowerPointTextHandler.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/POIXMLTextExtractorDecorator.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/ParagraphProperties.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/RunProperties.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/SXSLFPowerPointExtractorDecorator.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/SXWPFWordExtractorDecorator.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/XSLFPowerPointExtractorDecorator.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/XSSFBExcelExtractorDecorator.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/XSSFExcelExtractorDecorator.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/XWPFListManager.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/XWPFWordExtractorDecorator.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/xps/XPSExtractorDecorator.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/xps/XPSPageContentHandler.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/xps/XPSTextExtractor.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/xslf/XSLFEventBasedPowerPointExtractor.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/xwpf/XWPFEventBasedWordExtractor.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/xwpf/XWPFNumberingShim.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/xwpf/XWPFStylesShim.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/xwpf/ml2006/AbstractPartHandler.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/xwpf/ml2006/BinaryDataHandler.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/xwpf/ml2006/CorePropertiesHandler.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/xwpf/ml2006/ExtendedPropertiesHandler.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/xwpf/ml2006/PartHandler.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/xwpf/ml2006/Relationship.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/xwpf/ml2006/RelationshipsHandler.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/xwpf/ml2006/RelationshipsManager.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/xwpf/ml2006/Word2006MLDocHandler.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/xwpf/ml2006/Word2006MLParser.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/xwpf/ml2006/WordAndPowerPointTextPartHandler.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/pst/OutlookPSTParser.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/rtf/GroupState.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/rtf/ListDescriptor.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/rtf/RTFEmbObjHandler.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/rtf/RTFObjDataParser.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/rtf/RTFParser.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/rtf/TextExtractor.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/xml/AbstractXML2003Parser.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/xml/HyperlinkHandler.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/xml/SpreadsheetMLParser.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/xml/WordMLParser.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/resources/META-INF/services/org.apache.tika.detect.Detector (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/resources/META-INF/services/org.apache.tika.detect.zip.ZipContainerDetector (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/resources/META-INF/services/org.apache.tika.extractor.EmbeddedStreamTranslator (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/main/resources/META-INF/services/org.apache.tika.parser.Parser (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/AbstractPOIContainerExtractionTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/EMFParserTest.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/ExcelParserTest.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/JackcessParserTest.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/MSOwnerFileParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/OfficeParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/OldExcelParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/OutlookParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/POIContainerExtractionTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/PowerPointParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/ProjectParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/PublisherParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/SolidworksParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/TNEFParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/VisioParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/WMFParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/WordParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/WriteProtectedParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/chm/TestChmBlockInfo.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/chm/TestChmExtraction.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/chm/TestChmExtractor.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/chm/TestChmItsfHeader.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/chm/TestChmItspHeader.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/chm/TestChmLzxState.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/chm/TestChmLzxcControlData.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/chm/TestChmLzxcResetTable.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/chm/TestDirectoryListingEntry.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/chm/TestParameters.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/chm/TestPmgiHeader.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/chm/TestPmglHeader.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/onenote/OneNoteParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/ooxml/OOXMLContainerExtractionTest.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/ooxml/OOXMLParserTest.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/ooxml/SXSLFExtractorTest.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/ooxml/SXWPFExtractorTest.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/ooxml/TruncatedOOXMLTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/ooxml/xps/XPSParserTest.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/ooxml/xwpf/ml2006/Word2006MLParserTest.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/pst/OutlookPSTParserTest.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/rtf/RTFParserTest.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/xml/XML2003ParserTest.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/test/resources/org/apache/tika/parser/microsoft => tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/resources/org/apache/tika/parser/microsoft/ooxml}/tika-config-custom-date-override.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/org/apache/tika/parser/microsoft/ooxml/tika-config-dom-macros.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/org/apache/tika/parser/microsoft/ooxml/tika-config-sax-macros.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/org/apache/tika/parser/microsoft/rtf/ignoreListMarkup-tika-config.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/org/apache/tika/parser/microsoft/rtf/tika-config.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module/src/test/resources/org/apache/tika/parser/microsoft/ooxml => tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/resources/org/apache/tika/parser/microsoft}/tika-config-custom-date-override.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/org/apache/tika/parser/microsoft/tika-config-exclude-phonetic.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/org/apache/tika/parser/microsoft/tika-config-extract-all-alternatives-msg.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/org/apache/tika/parser/microsoft/tika-config-macros.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/org/apache/tika/parser/microsoft/tika-config-sax-docx.xml (100%)
 rename {tika-server/tika-server-classic => tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module}/src/test/resources/test-documents/Doc1_ole.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/EmbeddedDocument.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/EmbeddedOutlook.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/EmbeddedPDF.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/NullHeader.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/chm/IMJPCL.CHM (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/chm/IMJPCLE.CHM (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/chm/IMTCEN.CHM (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/chm/admin.chm (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/chm/cmak_ops.CHM (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/chm/comexp.CHM (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/chm/gpedit.CHM (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/chm/tcpip.CHM (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/chm/wmicontrol.CHM (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/footnotes.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/headerPic.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/jxl.xls (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/pictures.ppt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/protect.xlsx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/protectedFile.xlsx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/protectedSheets.xlsx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/test-columnar.xls (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/test-columnar.xlsb (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/test-columnar.xlsx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/test-outlook.msg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/test-outlook2003.msg (100%)
 rename {tika-server/tika-server-classic => tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module}/src/test/resources/test-documents/test.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testACCESS.mdb (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testAccess2.accdb (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testAccess2_2000.mdb (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testAccess2_2002-2003.mdb (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testAccess2_encrypted.accdb (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testAccess_V1997.mdb (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testBinControlWord.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testChm.chm (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testChm2.chm (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testChm3.chm (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testChm_oom.chm (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testComment.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testComment.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testComment.ppt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testComment.pptx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testComment.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testComment.xls (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testComment.xlsx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testControlCharacters.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testDOCX_Thumbnail.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testDOTM.dotm (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testDocumentLink.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEMF.emf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEMLX.emlx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEML_embedded_xhtml_and_img.eml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL-charts.xls (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL-formats.xls (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL-formats.xlsx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL.strict.xlsx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL.xls (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL.xlsb (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL.xlsx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL2003.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_1img.xls (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_1img.xlsx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_4.xls (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_5.xls (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_95.xls (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_WORKBOOK_in_capitals.xls (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_big_numbers.xls (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_big_numbers.xlsx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_charts.xlsb (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_charts.xlsx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_custom_props.xls (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_custom_props.xlsx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_dateFormats.xls (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_dateFormats.xlsx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_diagramData.xlsb (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_diagramData.xlsx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_embeddedPDF_mac.xls (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_embeddedPDF_mac.xlsx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_embeddedPDF_windows.xls (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_embeddedPDF_windows.xlsx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_embeded.xls (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_embeded.xlsx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_headers_footers.xls (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_headers_footers.xlsx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_hyperlinks.xls (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_hyperlinks.xlsx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_labels-govdocs-515858.xls (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_macro.xls (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_macro.xlsm (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_macro_enabled_template.xltm (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_phonetic.xls (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_phonetic.xlsx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_poi-61034.xlsx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_poi.xlsx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_protected_passtika.xls (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_protected_passtika.xlsx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_protected_passtika_2.xlsx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_signed.xlsx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_template.xlt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_template.xltx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_textbox.xls (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_textbox.xlsx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testEXCEL_various.xlsb (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testExcel_embeddedPDF.xls (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testExcel_embeddedPDF.xlsx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testException1.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testException2.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testFontAfterBufferedText.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testMSChart-govdocs-428996.ppt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testMSChart-govdocs-428996.pptx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testMSChart-govdocs-428996.xls (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testMSChart-govdocs-428996.xlsx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testMSEquation-govdocs-863534.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testMSG.msg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testMSG_Appointment.msg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testMSG_Contact.msg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testMSG_Post.msg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testMSG_StickyNote.msg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testMSG_Task.msg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testMSG_att_doc.msg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testMSG_att_msg.msg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testMSG_chinese.msg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testMSG_forwarded.msg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testMSOwnerFile (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testOneNote.one (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testOneNote1.one (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testOneNote2.one (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testOneNote2007OrEarlier1.one (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testOneNote2007OrEarlier2.one (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testOneNote2016.one (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testOneNote3.one (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testOneNote4.one (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testOneNoteEmbeddedWordDoc.one (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPM.ppm (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT.potm (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT.ppsm (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT.ppsx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT.ppt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT.pptm (100%)
 rename {tika-bundles/tika-bundle-classic/src/test/resources => tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/resources/test-documents}/testPPT.pptx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT.thmx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT.xps (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPTX_Thumbnail.pptx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPTX_overlappingRelations.pptx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_2imgs.ppt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_2imgs.pptx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_EmbeddedPDF.ppt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_EmbeddedPDF.pptx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_autodate.ppt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_autodate.pptx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_charts.pptx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_comment.ppt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_comment.pptx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_custom_props.ppt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_custom_props.pptx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_diagramData.pptx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_embedded2.ppt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_embeddedMP3.pptx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_embedded_two_slides.pptx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_embeded.ppt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_embeded.pptx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_groups.ppt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_groups.pptx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_macros.ppt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_macros.pptm (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_masterFooter.ppt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_masterFooter.pptx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_masterText.ppt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_masterText.pptx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_masterText2.ppt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_masterText2.pptx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_oleWorkbook.ppt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_oleWorkbook.pptx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_protected_passtika.ppt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_protected_passtika.pptx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_signed.pptx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_skipBadCompressedObject.ppt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_various.ppt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_various.pptx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPPT_various2.pptx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPROJECT2003.mpp (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPROJECT2007.mpp (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPST.pst (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPST_variousBodyTypes.pst (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testPUBLISHER.pub (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTF-ms932.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTF.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFBoldItalic.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFBoldPlain.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFControls.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFCorruptListOverride.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFEmbeddedFiles.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFEmbeddedLink.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFHexEscapeInsideWord.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFHyperlink.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFIgnoredControlWord.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFInvalidUnicode.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFJapanese.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFListLibreOffice.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFListMicrosoftWord.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFListOverride.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFNewlines.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFRegularImages.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFTIKA_1713.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFTIKA_2150.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFTIKA_2500.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFTIKA_2883.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFTIKA_2899.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFTableCellSeparation.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFTableCellSeparation2.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFUmlautSpaces.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFUmlautSpaces2.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFUnicodeGothic.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFUnicodeUCNControlWordCharacterDoubling.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFVarious.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFWindowsCodepage1250.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFWithCurlyBraces.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFWord2010CzechCharacters.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTFWordPadCzechCharacters.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testRTF_annotation_spacing.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testVISIO.vsd (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testVISIO.vsdm (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testVISIO.vsdx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testVISIO.vssm (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testVISIO.vssx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testVISIO.vstm (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testVISIO.vstx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWINMAIL.dat (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWMF.wmf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWMF_charset.wmf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD2003.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD6.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_1img.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_1img.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_2003ml.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_2006ml.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_2006ml.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_2006ml.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_3imgs.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_3imgs.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_boldHyperlink.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_boldHyperlink.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_bold_character_runs.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_bold_character_runs.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_bold_character_runs2.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_bold_character_runs2.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_charts.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_closingSmartQInHyperLink.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_custom_props.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_custom_props.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_diagramData.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_docSecurity.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_embedded_pdf.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_embedded_pdf.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_embedded_pics.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_embedded_rtf.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_embeded.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_embeded.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_header_hyperlink.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_italicsSurroundingHyperlink.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_macros.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_macros.docm (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_missing_ooxml_bean1.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_missing_text.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_multi_authors.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_multi_authors.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_no_format.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_no_format.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_null_style.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_numbered_list.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_numbered_list.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_override_list_numbering.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_override_list_numbering.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_phonetic.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_phonetic.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_protected_passtika.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_protected_passtika.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_sdtInTextBox.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_signed.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_specialControlCharacter1415.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_tabular_symbol.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_template.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_template.dotx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_text_box.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_totalTimeOutOfRange.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_truncated.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_various.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_various.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWORKSSpreadsheet7.0.xlr (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testWordArt.pptx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testXLSX_Thumbnail.xlsx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testXPSWithDataDescriptor.xps (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testXPSWithDataDescriptor2.xps (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testXPS_various.xps (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testZIP_corrupted_oom.zip (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/test_TIKA-1251.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/test_embedded_zip.pptx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/test_list_override.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/test_recursive_embedded.doc (100%)
 rename {tika-server/tika-server-classic => tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module}/src/test/resources/test-documents/test_recursive_embedded.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/test_recursive_embedded_npe.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testsolidworksAssembly2013SP2.SLDASM (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testsolidworksAssembly2014SP0.SLDASM (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testsolidworksDrawing2013SP2.SLDDRW (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testsolidworksDrawing2014SP0.SLDDRW (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testsolidworksPart2013SP2.SLDPRT (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-microsoft-module/src/test/resources/test-documents/testsolidworksPart2014SP0.SLDPRT (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/pom.xml
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/detect/ole/MiscOLEDetector.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/dbf/DBFCell.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/dbf/DBFColumnHeader.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/dbf/DBFFileHeader.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/dbf/DBFParser.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/dbf/DBFReader.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/dbf/DBFRow.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/dif/DIFContentHandler.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/dif/DIFParser.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/epub/EpubContentParser.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/epub/EpubParser.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/hwp/HwpStreamReader.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/hwp/HwpTextExtractorV5.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/hwp/HwpV5Parser.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/mif/MIFContentHandler.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/mif/MIFExtractor.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/mif/MIFParser.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/odf/FlatOpenDocumentMacroHandler.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/odf/FlatOpenDocumentParser.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/odf/NSNormalizerContentHandler.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/odf/OpenDocumentBodyHandler.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/odf/OpenDocumentContentParser.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/odf/OpenDocumentMacroHandler.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/odf/OpenDocumentManifestHandler.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/odf/OpenDocumentMetaParser.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/odf/OpenDocumentParser.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/wordperfect/QPWTextExtractor.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/wordperfect/QuattroProParser.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/wordperfect/WP5Charsets.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/wordperfect/WP5DocumentAreaExtractor.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/wordperfect/WP6Charsets.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/wordperfect/WP6DocumentAreaExtractor.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/wordperfect/WPDocumentAreaExtractor.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/wordperfect/WPInputStream.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/wordperfect/WPPrefixArea.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/wordperfect/WPPrefixAreaExtractor.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/wordperfect/WordPerfectParser.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/main/resources/META-INF/services/org.apache.tika.detect.Detector (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/main/resources/META-INF/services/org.apache.tika.parser.Parser (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/java/org/apache/tika/parser/dbf/DBFParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/java/org/apache/tika/parser/dif/DIFParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/java/org/apache/tika/parser/epub/EpubParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/java/org/apache/tika/parser/hwp/HwpV5ParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/java/org/apache/tika/parser/ibooks/iBooksParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/java/org/apache/tika/parser/mif/MIFParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/java/org/apache/tika/parser/odf/ODFParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/java/org/apache/tika/parser/wordperfect/QuattroProTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/java/org/apache/tika/parser/wordperfect/WPInputStreamTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/java/org/apache/tika/parser/wordperfect/WordPerfectTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/org/apache/tika/parser/epub/tika-config.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module}/src/test/resources/org/apache/tika/parser/odf/tika-config-macros.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/org/apache/tika/parser/wordperfect/tika-config.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/Zamora2010.dif (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testDBF.dbf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testDBF_gb18030.dbf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testEPUB.epub (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testEPUB_xml_ext.epub (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testFooter.ods (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testFooter.odt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testFramemakerMif.mif (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testHWP-v5-dist.hwp (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testHWP-v5b.hwp (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testHWP_3.0.hwp (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testHWP_5.0.hwp (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testMIF.mif (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testMasterFooter.odp (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testNPEOpenDocument.odt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testODFwithOOo3.odt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testODPMacro.fodp (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testODPMacro.odp (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testODP_NPE.odp (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testODSMacro.fods (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testODSMacro.ods (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testODT-TIKA-6000.odt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testODTEmbedded.odt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testODTEmbeddedImageLink.odt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testODTEncrypted.odt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testODTMacro.fodt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testODTMacro.odt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testODTNoMeta.odt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testODTStyles2.odt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testODTStyles3.odt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testODTnotaZipFile.odt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testOpenOffice-autotext.bau (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testOpenOffice-extension.oxt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testOpenOffice2.odf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testOpenOffice2.odt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testOpenOfficeInAZip.zip (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testQUATTRO.qpw (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testQUATTRO.wb3 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testQuattro.wb1 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testQuattro.wb2 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testQuattro.wq1 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testQuattro.wq2 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testStyles.odt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testWordPerfect.wpd (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testWordPerfect_42.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testWordPerfect_5_0.wp (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testWordPerfect_5_1.wp (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-miscoffice-module/src/test/resources/test-documents/testiBooks.ibooks (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-news-module/pom.xml
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-news-module/src/main/java/org/apache/tika/parser/feed/FeedParser.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-news-module/src/main/java/org/apache/tika/parser/iptc/IptcAnpaParser.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-news-module/src/main/resources/META-INF/services/org.apache.tika.parser.Parser (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-news-module/src/test/java/org/apache/tika/parser/feed/FeedParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-news-module/src/test/resources/test-documents/rsstest_091.rss (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-news-module/src/test/resources/test-documents/rsstest_20.rss (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-news-module/src/test/resources/test-documents/testATOM.atom (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-ocr-module/pom.xml
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-ocr-module/src/main/java/org/apache/tika/parser/ocr/ImagePreprocessor.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-ocr-module/src/main/java/org/apache/tika/parser/ocr/TesseractOCRConfig.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-ocr-module/src/main/java/org/apache/tika/parser/ocr/TesseractOCRParser.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-ocr-module/src/main/java/org/apache/tika/parser/ocr/tess4j/ImageDeskew.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-ocr-module/src/main/java/org/apache/tika/parser/ocr/tess4j/ImageUtil.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-ocr-module/src/main/resources/META-INF/services/org.apache.tika.parser.Parser (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-ocr-module/src/test/java/org/apache/tika/parser/ocr/TesseractOCRConfigTest.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-ocr-module/src/test/java/org/apache/tika/parser/ocr/TesseractOCRParserTest.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-ocr-module/src/test/resources/test-configs/TIKA-2705-tesseract.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-ocr-module/src/test/resources/test-configs/tika-config-tesseract-arbitrary.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-ocr-module/src/test/resources/test-configs/tika-config-tesseract-full.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-ocr-module/src/test/resources/test-configs/tika-config-tesseract-load-langs.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-ocr-module/src/test/resources/test-configs/tika-config-tesseract-partial.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-ocr-module/src/test/resources/test-documents/testOCR.docx (100%)
 rename {tika-bundles/tika-bundle-classic/src/test/resources => tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-ocr-module/src/test/resources/test-documents}/testOCR.jpg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-ocr-module/src/test/resources/test-documents/testOCR.pptx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-ocr-module/src/test/resources/test-documents/testOCR_spacing.png (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-ocr-module/src/test/resources/test-documents/testRotated+10.png (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-ocr-module/src/test/resources/test-documents/testRotated-10.png (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-ocr-module/src/test/resources/test-documents/testTIFF_multipage.tif (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/pom.xml
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/AbstractPDF2XHTML.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/AccessChecker.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/ImageGraphicsEngine.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/OCR2XHTML.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/PDF2XHTML.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/PDFDOMUtil.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/PDFEncodedStringDecoder.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/PDFMarkedContent2XHTML.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/PDFParser.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/PDFParserConfig.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/PDFPreflightParser.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/PDMetadataExtractor.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/XFAExtractor.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/main/resources/META-INF/services/org.apache.tika.parser.Parser (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/java/org/apache/tika/parser/pdf/AccessCheckerTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/java/org/apache/tika/parser/pdf/PDFMarkedContent2XHTMLTest.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/test/java/org/apache/tika/parser/pdf/PDFParserTest.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/java/org/apache/tika/parser/pdf/PDFPreflightParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/org/apache/tika/parser/pdf/tika-config-non-primitives.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/org/apache/tika/parser/pdf/tika-config.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/org/apache/tika/parser/pdf/tika-inline-config.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/org/apache/tika/parser/pdf/tika-ocr-config.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/org/apache/tika/parser/pdf/tika-preflight-config.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/org/apache/tika/parser/pdf/tika-xml-profiler-config.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testAnnotations.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testExtraSpaces.pdf (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/test/resources/test-documents/testFlashInPDF.pdf
 rename tika-parsers/{tika-parsers-advanced/tika-parser-nlp-module => tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module}/src/test/resources/test-documents/testJournalParser.pdf (100%)
 rename {tika-server/tika-server-classic => tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module}/src/test/resources/test-documents/testOCR.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testOptionalHyphen.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testOverlappingText.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDF-custommetadata.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDF.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDFEmbeddingAndEmbedded.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDFFileEmbInAnnotation.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDFFileEmbInAnnotation_noContents.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDFPackage.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDFTripleLangTitle.pdf (100%)
 rename {tika-server/tika-server-classic => tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module}/src/test/resources/test-documents/testPDFTwoTextBoxes.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDFVarious.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDF_JBIG2.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDF_PDFEncodedStringInXMP.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDF_Version.10.x.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDF_Version.11.x.PDFA-1b.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDF_Version.4.x.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDF_Version.5.x.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDF_Version.6.x.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDF_Version.7.x.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDF_Version.8.x.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDF_Version.9.x.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDF_XFA_govdocs1_258578.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDF_XMPBasicSchema.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDF_acroform3.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDF_angles.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDF_bad_page_303226.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDF_bom.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDF_bookmarks.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDF_childAttachments.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDF_deeplyEmbeddedAttachments.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDF_diffTitles.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDF_multiFormatEmbFiles.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDF_no_extract_no_accessibility_owner_empty.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDF_no_extract_no_accessibility_owner_user.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDF_no_extract_yes_accessibility_owner_empty.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDF_no_extract_yes_accessibility_owner_user.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDF_protected.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPDF_twoAuthors.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPageNumber.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testPopupAnnotation.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pdf-module/src/test/resources/test-documents/testStandardsExtractor.pdf (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/pom.xml
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/CompressorParser.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/CompressorParserOptions.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/PackageParser.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/RarParser.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/main/resources/META-INF/services/org.apache.tika.parser.Parser (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/test/java/org/apache/tika/parser/pkg/AbstractPkgTest.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/java/org/apache/tika/parser/pkg/ArParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/java/org/apache/tika/parser/pkg/Bzip2ParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/java/org/apache/tika/parser/pkg/CompressParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/java/org/apache/tika/parser/pkg/CompressorParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/java/org/apache/tika/parser/pkg/GzipParserTest.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/test/java/org/apache/tika/parser/pkg/PackageParserTest.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/java/org/apache/tika/parser/pkg/RarParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/java/org/apache/tika/parser/pkg/Seven7ParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/java/org/apache/tika/parser/pkg/TarParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/java/org/apache/tika/parser/pkg/ZipParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/java/org/apache/tika/parser/pkg/ZlibParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/org/apache/tika/parser/pkg/tika-config.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/TIKA-216.tgz (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/droste.zip (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/full_encrypted.7z (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/test/resources/test-documents/gbk.zip
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/moby.zip (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/quine.gz (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/test-documents-enc.rar (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/test-documents-spanned.z01 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/test-documents-spanned.zip (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/test-documents.7z (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/test-documents.cab (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/test-documents.cpio (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/test-documents.ddf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/test-documents.dmg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/test-documents.rar (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/test-documents.tar (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/test-documents.tar.Z (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/test-documents.tbz2 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/test-documents.tgz (100%)
 rename {tika-bundles/tika-bundle-classic/src/test/resources => tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/test/resources/test-documents}/test-documents.zip (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/test-zip-of-zip.zip (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/test7Z_protected_passTika.7z (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/testARofSND.ar (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/testARofText.ar (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/testBROTLI_compressed.br (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/testEmbedded.zip (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/testJAR_with_HTML.jar (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/testJAR_with_PEHDR.jar (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/testLZ4-framed.lz4 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/testLZMA_oom (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/testSVG.svg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/testSVG.svgz (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/testSnappy-framed.sz (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/testTXT.zlib (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/testTXT.zlib0 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/testTXT.zlib5 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/testTXT.zlib9 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/testZSTD.zstd (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/testZ_oom.Z (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/testZipEncrypted.zip (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/testZip_with_DataDescriptor.zip (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-pkg-module/src/test/resources/test-documents/testZip_with_DataDescriptor2.zip (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/pom.xml
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-text-module/src/main/java/org/apache/tika/parser/csv/CSVParams.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-text-module/src/main/java/org/apache/tika/parser/csv/CSVResult.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/csv/CSVSniffer.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/csv/TextAndCSVParser.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/strings/Latin1StringsParser.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-text-module/src/main/java/org/apache/tika/parser/strings/StringsConfig.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-text-module/src/main/java/org/apache/tika/parser/strings/StringsEncoding.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/strings/StringsParser.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/txt/CharsetDetector.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/txt/CharsetMatch.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-text-module/src/main/java/org/apache/tika/parser/txt/CharsetRecog_2022.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-text-module/src/main/java/org/apache/tika/parser/txt/CharsetRecog_UTF8.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-text-module/src/main/java/org/apache/tika/parser/txt/CharsetRecog_Unicode.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/txt/CharsetRecog_mbcs.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-text-module/src/main/java/org/apache/tika/parser/txt/CharsetRecog_sbcs.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-text-module/src/main/java/org/apache/tika/parser/txt/CharsetRecognizer.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-text-module/src/main/java/org/apache/tika/parser/txt/Icu4jEncodingDetector.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-text-module/src/main/java/org/apache/tika/parser/txt/TXTParser.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-text-module/src/main/java/org/apache/tika/parser/txt/UniversalEncodingDetector.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-text-module/src/main/java/org/apache/tika/parser/txt/UniversalEncodingListener.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-text-module/src/main/resources/META-INF/services/org.apache.tika.detect.EncodingDetector (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-text-module/src/main/resources/META-INF/services/org.apache.tika.parser.Parser (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-text-module/src/test/java/org/apache/tika/parser/csv/CSVSnifferTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-text-module/src/test/java/org/apache/tika/parser/csv/TextAndCSVParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-text-module/src/test/java/org/apache/tika/parser/strings/Latin1StringsParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-text-module/src/test/java/org/apache/tika/parser/strings/StringsConfigTest.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/test/java/org/apache/tika/parser/strings/StringsParserTest.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-text-module/src/test/java/org/apache/tika/parser/txt/CharsetDetectorTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-text-module/src/test/java/org/apache/tika/parser/txt/TXTParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-text-module/src/test/resources/org/apache/tika/parser/csv/tika-config.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-text-module/src/test/resources/test-configs/tika-config-strings-full.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-text-module/src/test/resources/test-configs/tika-config-strings-partial.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-text-module/src/test/resources/test-documents/english.cp500.txt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-text-module/src/test/resources/test-documents/multi-language.txt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-text-module/src/test/resources/test-documents/resume.html (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-text-module/src/test/resources/test-documents/russian.cp866.txt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-text-module/src/test/resources/test-documents/testOCTET_header.dbase3 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-text-module/src/test/resources/test-documents/testTXT_win-1252.txt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-text-module/src/test/resources/test-documents/testVCalendar.vcs (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xml-module/pom.xml
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-xml-module/src/main/java/org/apache/tika/parser/xliff/XLIFF12ContentHandler.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-xml-module/src/main/java/org/apache/tika/parser/xliff/XLIFF12Parser.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-xml-module/src/main/java/org/apache/tika/parser/xliff/XLZParser.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-xml-module/src/main/java/org/apache/tika/parser/xml/AbstractMetadataHandler.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-xml-module/src/main/java/org/apache/tika/parser/xml/AttributeDependantMetadataHandler.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-xml-module/src/main/java/org/apache/tika/parser/xml/AttributeMetadataHandler.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-xml-module/src/main/java/org/apache/tika/parser/xml/DcXMLParser.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-xml-module/src/main/java/org/apache/tika/parser/xml/ElementMetadataHandler.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-xml-module/src/main/java/org/apache/tika/parser/xml/FictionBookParser.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-xml-module/src/main/java/org/apache/tika/parser/xml/MetadataHandler.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-xml-module/src/main/java/org/apache/tika/parser/xml/TextAndAttributeXMLParser.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xml-module/src/main/java/org/apache/tika/parser/xml/XMLParser.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xml-module/src/main/java/org/apache/tika/parser/xml/XMLProfiler.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-xml-module/src/main/resources/META-INF/services/org.apache.tika.parser.Parser (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-xml-module/src/test/java/org/apache/tika/parser/xliff/XLIFF12ParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-xml-module/src/test/java/org/apache/tika/parser/xliff/XLZParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-xml-module/src/test/java/org/apache/tika/parser/xml/DcXMLParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-xml-module/src/test/java/org/apache/tika/parser/xml/EmptyAndDuplicateElementsXMLParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-xml-module/src/test/java/org/apache/tika/parser/xml/FictionBookParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-xml-module/src/test/java/org/apache/tika/parser/xml/TextAndAttributeXMLParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-xml-module/src/test/resources/test-documents/test.fb2 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-xml-module/src/test/resources/test-documents/testXLIFF12.xlf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-xml-module/src/test/resources/test-documents/testXLIFF12.xlz (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-xml-module/src/test/resources/test-documents/testXML.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-xml-module/src/test/resources/test-documents/testXML2.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-xml-module/src/test/resources/test-documents/testXML3.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-xml-module/src/test/resources/test-documents/testXXE.xml (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xmp-commons/pom.xml
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-xmp-commons/src/main/java/org/apache/tika/parser/xmp/JempboxExtractor.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-xmp-commons/src/main/java/org/apache/tika/parser/xmp/XMPPacketScanner.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xmp-commons/src/test/java/org/apache/tika/parser/xmp/JempboxExtractorTest.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-xmp-commons/src/test/resources/test-documents/testJPEG_commented.jpg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-xmp-commons/src/test/resources/test-documents/testJPEG_commented_pspcs2mac.jpg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-xmp-commons/src/test/resources/test-documents/testJPEG_commented_xnviewmp026.jpg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-xmp-commons/src/test/resources/test-documents/testXMP.xmp (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-zip-commons/pom.xml
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-zip-commons/src/main/java/org/apache/tika/detect/zip/CompressorConstants.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-zip-commons/src/main/java/org/apache/tika/detect/zip/DefaultZipContainerDetector.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-zip-commons/src/main/java/org/apache/tika/detect/zip/DeprecatedStreamingZipContainerDetector.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-zip-commons/src/main/java/org/apache/tika/detect/zip/DeprecatedZipContainerDetector.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-zip-commons/src/main/java/org/apache/tika/detect/zip/IPADetector.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-zip-commons/src/main/java/org/apache/tika/detect/zip/JarDetector.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-zip-commons/src/main/java/org/apache/tika/detect/zip/KMZDetector.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-zip-commons/src/main/java/org/apache/tika/detect/zip/OpenDocumentDetector.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-zip-commons/src/main/java/org/apache/tika/detect/zip/PackageConstants.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-zip-commons/src/main/java/org/apache/tika/detect/zip/StarOfficeDetector.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-zip-commons/src/main/java/org/apache/tika/detect/zip/StreamingDetectContext.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-zip-commons/src/main/java/org/apache/tika/detect/zip/StreamingZipContainerDetector.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-zip-commons/src/main/java/org/apache/tika/detect/zip/ZipContainerDetector.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-zip-commons/src/main/java/org/apache/tika/detect/zip/ZipContainerDetectorBase.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-zip-commons/src/main/java/org/apache/tika/zip/utils/ZipSalvager.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-zip-commons/src/main/resources/META-INF/services/org.apache.tika.detect.Detector (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-zip-commons/src/main/resources/META-INF/services/org.apache.tika.detect.zip.ZipContainerDetector (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-zip-commons/src/test/java/org/apache/tika/detect/zip/ZipParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-zip-commons/src/test/resources/test-documents/testJAR.jar (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules => tika-parsers-standard/tika-parsers-standard-modules}/tika-parser-zip-commons/src/test/resources/test-documents/testKMZ.kmz (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-package/pom.xml
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/main/java/org/apache/tika/parser/internal/Activator.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/config/TikaDetectorConfigTest.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/config/TikaEncodingDetectorTest.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/config/TikaParserConfigTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/config/TikaTranslatorConfigTest.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/detect/TestContainerAwareDetector.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/detect/TestDetectorLoading.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/detect/TestFileCommandDetector.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/extractor/EmbeddedDocumentUtilTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/mime/MimeTypeTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/mime/MimeTypesTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/mime/TestMimeTypes.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/parser/AutoDetectParserTest.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/parser/AutoDetectReaderParserTest.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/BouncyCastleDigestingParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/DigestingParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/ParsingReaderTest.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/parser/RecursiveParserWrapperTest.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/TabularFormatsTest.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/parser/TestParsers.java
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/parser/TestXMLEntityExpansion.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/TestXXEInXML.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/XMLTestBase.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/apple/AppleSingleFileParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/apple/PListParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/crypto/TSDParserTest.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/parser/fork/ForkParserIntegrationTest.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/html/HtmlParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/mail/MboxParserTest.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/parser/mail/RFC822ParserTest.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/microsoft/EMFParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/microsoft/ExcelParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/microsoft/POIContainerExtractionTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/microsoft/PowerPointParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/microsoft/XML2003ParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/microsoft/ooxml/OOXMLParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/microsoft/ooxml/TruncatedOOXMLTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/microsoft/rtf/RTFParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/mock/MockParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/ocr/TesseractOCRParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/odf/ODFParserTest.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/parser/pdf/PDFParserTest.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/pkg/ArParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/pkg/Bzip2ParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/pkg/CompositeZipContainerDetectorTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/pkg/CompressParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/pkg/CompressorParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/pkg/GzipParserTest.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/parser/pkg/PackageParserTest.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/pkg/RarParserTest.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/parser/pkg/Seven7ParserTest.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/pkg/TarParserTest.java (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/parser/pkg/ZipParserTest.java
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/pkg/ZlibParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/parser/xml/FictionBookParserTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/sax/PhoneExtractingContentHandlerTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/sax/StandardsExtractingContentHandlerTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/java/org/apache/tika/utils/ServiceLoaderUtilsTest.java (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/log4j.properties (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/org/apache/tika/config/TIKA-1558-exclude.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/org/apache/tika/config/TIKA-1558-excludesub.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/org/apache/tika/config/TIKA-1702-detector-exclude.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/org/apache/tika/config/TIKA-1702-translator-default.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/org/apache/tika/config/TIKA-1702-translator-empty-default.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/org/apache/tika/config/TIKA-1702-translator-empty.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/org/apache/tika/config/TIKA-1708-detector-composite.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/org/apache/tika/config/TIKA-1708-detector-default.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/org/apache/tika/config/TIKA-2273-encoding-detector-outside-static-init.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/org/apache/tika/config/TIKA-2273-exclude-encoding-detector-default.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/org/apache/tika/config/TIKA-2273-no-icu4j-encoding-detector.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/org/apache/tika/config/TIKA-2273-non-detecting-params-bad-charset.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/org/apache/tika/config/TIKA-2273-non-detecting-params.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/org/apache/tika/config/TIKA-2273-parameterize-encoding-detector.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/org/apache/tika/config/TIKA-2485-encoding-detector-mark-limits.xml (100%)
 create mode 100644 tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/resources/org/apache/tika/parser/TIKA-3137-include.xml
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules/tika-parser-miscoffice-module => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/org/apache/tika/parser/odf/tika-config-macros.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/CVLKRA-KYC_Download_File_Structure_V3.1.xlsx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/NUTCH-1997.cbor (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/active_layer_arcss_grid_barrow_alaska_2012.dif (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/baseball.gif (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/baseball.jpg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/baseball.png (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/carbon_isotopic_values_of_alkanes_extracted_from_paleosols.dif (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/mock/embedded_then_npe.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/mock/example.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/mock/fake_oom.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/mock/heavy_hang.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/mock/nothing_bad.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/mock/null_pointer.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/mock/null_pointer_no_msg.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/mock/real_oom.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/mock/sleep.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/mock/sleep_interruptible.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/mock/sleep_not_interruptible.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/mock/system_exit.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/mock/thread_interrupt.xml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/test-columnar.csv (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/test-columnar.ods (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/test-columnar.xpt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/test1.swf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/test2.swf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/test3.swf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testAC3.ac3 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testAMR-WB.amr (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testAMR.amr (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testAPK.apk (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testASF.asf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testASiCE.asice (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testASiCS.asics (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testBAT.bat (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testBATUpper.bat (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testBDB_btree_2.db (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testBDB_btree_3.db (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testBDB_btree_4.db (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testBDB_btree_5.db (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testBDB_hash_2.db (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testBDB_hash_3.db (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testBDB_hash_4.db (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testBDB_hash_5.db (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testBIBTEX.bib (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testBMPfp.txt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules/tika-parser-crypto-module => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testCERT.der (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules/tika-parser-crypto-module => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testCERT.pem (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testCOREL.shw (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testCSS.css (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testCSV.csv (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testComment.pdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testDCX.dcx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testDITA.dita (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testDITA.ditamap (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testDITA2.dita (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testDJVU.djvu (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules/tika-parser-crypto-module => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testDSAKEY.der (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules/tika-parser-crypto-module => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testDSAKEY.pem (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules/tika-parser-crypto-module => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testDSAPARAMS.pem (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testDWF2010.dwf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testDXF_ascii.dxf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testDigilite.fdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testEAC3.ac3 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testEAR.ear (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules/tika-parser-crypto-module => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testECKEY.der (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules/tika-parser-crypto-module => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testECKEY.pem (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules/tika-parser-crypto-module => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testECPARAMS.pem (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testEndNoteImportFile.enw (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testFITS.fits (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testFITS_ShorterHeader.fits (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testFLAC.flac (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testFLAC.oga (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testFOXMAIL.box (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testFreeBSD-x86-64 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testGRAPHVIZd.dot (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testGRAPHVIZdc.dot (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testGRAPHVIZg.dot (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testH.h (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testHFA.hfa (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testICalendar.ics (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testINDD.indd (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testIPA.ipa (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testJAVAPROPS.properties (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testJNILIB.jnilib (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testJavaHprofBinary (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testJavaHprofText (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testKML.kml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testLotus123-lotusftp.123 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testLotus123-lotusftp.wk4 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testLotus123.wk1 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testLotus123.wk3 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testLotus123.wks (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testLotusEml.eml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testMHTMLFirefox.mhtml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testMKV.mkv (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testMSWriteFile.wri (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testMYSQL.MYD (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testMYSQL.MYI (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testMYSQL.frm (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testMemgraph.memgraph (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testMessageNews.txt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testNLS1.nls (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testNLS2.nls (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testOPUS.opus (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testOptionalHyphen.doc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testOptionalHyphen.docx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testOptionalHyphen.ppt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testOptionalHyphen.pptx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testOptionalHyphen.rtf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testPBM.pbm (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testPCX.pcx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testPGM.pgm (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testPICT.pct (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testPKCS17Sig-v2.xml.p7m (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testPKCS17Sig-v3.xml.p7m (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testPKCS17Sig-v4.xml.p7m (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testPKCS17Sig.xml.p7m (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testPhoneNumberExtractor.odt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testRDF.rdf (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules/tika-parser-crypto-module => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testRSAKEY.der (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-modules/tika-parser-crypto-module => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testRSAKEY.pem (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testSolaris-x86-32 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testStarOffice-5.2-calc.sdc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testStarOffice-5.2-draw.sda (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testStarOffice-5.2-impress.sdd (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testStarOffice-5.2-writer.sdw (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testStarOffice-6.0-calc.sxc (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testStarOffice-6.0-draw.sxd (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testStarOffice-6.0-draw.sxi (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testStarOffice-6.0-writer-template.stw (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testStarOffice-6.0-writer.sxw (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testStataDTA.dta (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testStataDTA.txt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testTAR_no_magic.tar (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testTXT-tika.axx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testTXT.txt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testTXTNonASCIIUTF8.txt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testThunderbirdEml.eml (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testTinyPE.exe (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testVORBIS.ogg (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testVORCalcTemplate.vor (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testVORDrawTemplate.vor (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testVORImpressTemplate.vor (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testVORWriterTemplate.vor (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testVideoMp4.mp4 (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testWAR.war (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testWEBM.webm (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testWMA.wma (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testWMV.wmv (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testWMV_WMV2.wmv (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testWORKS.wps (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testWORKS2000.wps (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testWORKSWordProcessor3.0.wps (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testWORKSWordProcessor4.0.wps (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testWebVTT.vtt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testWebVTT_header.vtt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testWebVTT_simple.vtt (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testWindowsMediaMeta.asx (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testXDP.xdp (100%)
 rename tika-parsers/{tika-parsers-classic/tika-parsers-classic-package => tika-parsers-standard/tika-parsers-standard-package}/src/test/resources/test-documents/testXFDF.xfdf (100%)
 delete mode 100644 tika-pipes/tika-emitters/tika-emitter-solr/src/test/java/org/apache/tika/pipes/emitter/solr/TestBasic.java
 delete mode 100644 tika-pipes/tika-fetch-iterators/pom.xml
 delete mode 100644 tika-pipes/tika-fetch-iterators/tika-fetch-iterator-csv/pom.xml
 delete mode 100644 tika-pipes/tika-fetch-iterators/tika-fetch-iterator-csv/src/main/java/org/apache/tika/pipes/fetchiterator/csv/CSVFetchIterator.java
 delete mode 100644 tika-pipes/tika-fetch-iterators/tika-fetch-iterator-csv/src/test/java/TestCSVFetchIterator.java
 delete mode 100644 tika-pipes/tika-fetch-iterators/tika-fetch-iterator-jdbc/pom.xml
 delete mode 100644 tika-pipes/tika-fetch-iterators/tika-fetch-iterator-jdbc/src/main/java/org/apache/tika/pipes/fetchiterator/jdbc/JDBCFetchIterator.java
 delete mode 100644 tika-pipes/tika-fetch-iterators/tika-fetch-iterator-jdbc/src/test/java/org/apache/tika/pipes/fetchiterator/jdbc/TestJDBCFetchIterator.java
 delete mode 100644 tika-pipes/tika-fetch-iterators/tika-fetch-iterator-jdbc/src/test/resources/log4j.properties
 delete mode 100644 tika-pipes/tika-fetch-iterators/tika-fetch-iterator-s3/pom.xml
 delete mode 100644 tika-pipes/tika-fetch-iterators/tika-fetch-iterator-s3/src/main/java/org/apache/tika/pipes/fetchiterator/s3/S3FetchIterator.java
 delete mode 100644 tika-pipes/tika-fetch-iterators/tika-fetch-iterator-s3/src/test/java/org/apache/tika/pipes/fetchiterator/s3/TestS3FetchIterator.java
 delete mode 100644 tika-pipes/tika-pipes-async/pom.xml
 delete mode 100644 tika-pipes/tika-pipes-async/src/main/java/org/apache/tika/pipes/async/AsyncCli.java
 delete mode 100644 tika-pipes/tika-pipes-async/src/main/java/org/apache/tika/pipes/async/AsyncConfig.java
 delete mode 100644 tika-pipes/tika-pipes-async/src/main/java/org/apache/tika/pipes/async/AsyncData.java
 delete mode 100644 tika-pipes/tika-pipes-async/src/main/java/org/apache/tika/pipes/async/AsyncEmitHook.java
 delete mode 100644 tika-pipes/tika-pipes-async/src/main/java/org/apache/tika/pipes/async/AsyncEmitter.java
 delete mode 100644 tika-pipes/tika-pipes-async/src/main/java/org/apache/tika/pipes/async/AsyncEmitterProcess.java
 delete mode 100644 tika-pipes/tika-pipes-async/src/main/java/org/apache/tika/pipes/async/AsyncPipesEmitHook.java
 delete mode 100644 tika-pipes/tika-pipes-async/src/main/java/org/apache/tika/pipes/async/AsyncProcessor.java
 delete mode 100644 tika-pipes/tika-pipes-async/src/main/java/org/apache/tika/pipes/async/AsyncRuntimeException.java
 delete mode 100644 tika-pipes/tika-pipes-async/src/main/java/org/apache/tika/pipes/async/AsyncTask.java
 delete mode 100644 tika-pipes/tika-pipes-async/src/main/java/org/apache/tika/pipes/async/AsyncWorker.java
 delete mode 100644 tika-pipes/tika-pipes-async/src/main/java/org/apache/tika/pipes/async/AsyncWorkerProcess.java
 delete mode 100644 tika-pipes/tika-pipes-async/src/main/resources/log4j.properties
 delete mode 100644 tika-pipes/tika-pipes-async/src/test/java/org/apache/tika/pipes/async/AsyncProcessorTest.java
 delete mode 100644 tika-pipes/tika-pipes-async/src/test/java/org/apache/tika/pipes/async/MockEmitter.java
 delete mode 100644 tika-pipes/tika-pipes-async/src/test/java/org/apache/tika/pipes/async/MockFetcher.java
 delete mode 100644 tika-pipes/tika-pipes-async/src/test/java/org/apache/tika/pipes/async/SerializationTest.java
 create mode 100644 tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/solrtest/TikaPipesSolr6Test.java
 create mode 100644 tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/solrtest/TikaPipesSolr7Test.java
 create mode 100644 tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/solrtest/TikaPipesSolr8Test.java
 create mode 100644 tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/solrtest/TikaPipesSolrTestBase.java
 create mode 100644 tika-pipes/tika-pipes-integration-tests/src/test/resources/log4j2.properties
 create mode 100644 tika-pipes/tika-pipes-integration-tests/src/test/resources/tika-async-log4j2.properties
 create mode 100644 tika-pipes/tika-pipes-integration-tests/src/test/resources/tika-config-solr-urls.xml
 create mode 100644 tika-pipes/tika-pipes-iterators/pom.xml
 create mode 100644 tika-pipes/tika-pipes-iterators/tika-pipes-iterator-csv/pom.xml
 create mode 100644 tika-pipes/tika-pipes-iterators/tika-pipes-iterator-csv/src/main/java/org/apache/tika/pipes/pipesiterator/csv/CSVPipesIterator.java
 create mode 100644 tika-pipes/tika-pipes-iterators/tika-pipes-iterator-csv/src/test/java/TestCSVPipesIterator.java
 rename tika-pipes/{tika-fetch-iterators/tika-fetch-iterator-csv => tika-pipes-iterators/tika-pipes-iterator-csv}/src/test/resources/test-simple.csv (100%)
 create mode 100644 tika-pipes/tika-pipes-iterators/tika-pipes-iterator-jdbc/pom.xml
 create mode 100644 tika-pipes/tika-pipes-iterators/tika-pipes-iterator-jdbc/src/main/java/org/apache/tika/pipes/pipesiterator/jdbc/JDBCPipesIterator.java
 create mode 100644 tika-pipes/tika-pipes-iterators/tika-pipes-iterator-jdbc/src/test/java/org/apache/tika/pipes/pipesiterator/jdbc/TestJDBCPipesIterator.java
 rename tika-pipes/{tika-pipes-integration-tests => tika-pipes-iterators/tika-pipes-iterator-jdbc}/src/test/resources/log4j.properties (100%)
 create mode 100644 tika-pipes/tika-pipes-iterators/tika-pipes-iterator-s3/pom.xml
 create mode 100644 tika-pipes/tika-pipes-iterators/tika-pipes-iterator-s3/src/main/java/org/apache/tika/pipes/pipesiterator/s3/S3PipesIterator.java
 create mode 100644 tika-pipes/tika-pipes-iterators/tika-pipes-iterator-s3/src/test/java/org/apache/tika/pipes/pipesiterator/s3/TestS3PipesIterator.java
 rename tika-pipes/{tika-fetch-iterators/tika-fetch-iterator-s3 => tika-pipes-iterators/tika-pipes-iterator-s3}/src/test/resources/log4j.properties (100%)
 create mode 100644 tika-pipes/tika-pipes-iterators/tika-pipes-iterator-solr/pom.xml
 create mode 100644 tika-pipes/tika-pipes-iterators/tika-pipes-iterator-solr/src/main/java/org/apache/tika/pipes/solrtest/SolrPipesIterator.java
 delete mode 100644 tika-server/tika-server-classic/assembly.xml
 delete mode 100755 tika-server/tika-server-classic/bin/tika.in.sh
 delete mode 100644 tika-server/tika-server-classic/pom.xml
 delete mode 100644 tika-server/tika-server-classic/src/main/java/org/apache/tika/server/classic/config/PDFServerConfig.java
 delete mode 100644 tika-server/tika-server-classic/src/main/java/org/apache/tika/server/classic/config/TesseractServerConfig.java
 delete mode 100644 tika-server/tika-server-classic/src/main/java/org/apache/tika/server/classic/resource/XMPMetadataResource.java
 delete mode 100644 tika-server/tika-server-classic/src/main/java/org/apache/tika/server/classic/writer/XMPMessageBodyWriter.java
 delete mode 100644 tika-server/tika-server-classic/src/main/resources/META-INF/services/org.apache.tika.server.core.ParseContextConfig
 delete mode 100644 tika-server/tika-server-classic/src/main/resources/META-INF/services/org.apache.tika.server.core.resource.TikaServerResource
 delete mode 100644 tika-server/tika-server-classic/src/main/resources/META-INF/services/org.apache.tika.server.core.writer.TikaServerWriter
 delete mode 100644 tika-server/tika-server-classic/src/main/resources/log4j.properties
 delete mode 100644 tika-server/tika-server-classic/src/test/java/org/apache/tika/server/classic/DetectorResourceTest.java
 delete mode 100644 tika-server/tika-server-classic/src/test/java/org/apache/tika/server/classic/FetcherTest.java
 delete mode 100644 tika-server/tika-server-classic/src/test/java/org/apache/tika/server/classic/MetadataResourceTest.java
 delete mode 100644 tika-server/tika-server-classic/src/test/java/org/apache/tika/server/classic/RecursiveMetadataFilterTest.java
 delete mode 100644 tika-server/tika-server-classic/src/test/java/org/apache/tika/server/classic/RecursiveMetadataResourceTest.java
 delete mode 100644 tika-server/tika-server-classic/src/test/java/org/apache/tika/server/classic/TikaDetectorsTest.java
 delete mode 100644 tika-server/tika-server-classic/src/test/java/org/apache/tika/server/classic/TikaMimeTypesTest.java
 delete mode 100644 tika-server/tika-server-classic/src/test/java/org/apache/tika/server/classic/TikaParsersTest.java
 delete mode 100644 tika-server/tika-server-classic/src/test/java/org/apache/tika/server/classic/TikaResourceTest.java
 delete mode 100644 tika-server/tika-server-classic/src/test/java/org/apache/tika/server/classic/UnpackerResourceTest.java
 delete mode 100644 tika-server/tika-server-classic/src/test/resources/config/TIKA-3137-include.xml
 delete mode 100644 tika-server/tika-server-classic/src/test/resources/log4j.properties
 delete mode 100644 tika-server/tika-server-client/src/main/resources/log4j.properties
 create mode 100644 tika-server/tika-server-client/src/main/resources/log4j2.properties
 delete mode 100644 tika-server/tika-server-client/src/test/resources/log4j.properties
 create mode 100644 tika-server/tika-server-client/src/test/resources/log4j2.properties
 create mode 100644 tika-server/tika-server-core/src/main/java/org/apache/tika/server/core/ProduceTypeResourceComparator.java
 delete mode 100644 tika-server/tika-server-core/src/main/java/org/apache/tika/server/core/resource/AsyncEmitter.java
 delete mode 100644 tika-server/tika-server-core/src/main/java/org/apache/tika/server/core/resource/AsyncParser.java
 delete mode 100644 tika-server/tika-server-core/src/main/java/org/apache/tika/server/core/resource/EmitterResource.java
 create mode 100644 tika-server/tika-server-core/src/main/java/org/apache/tika/server/core/resource/PipesResource.java
 delete mode 100644 tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/TikaEmitterTest.java
 create mode 100644 tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/TikaPipesTest.java
 delete mode 100644 tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/TikaServerEmitterIntegrationTest.java
 create mode 100644 tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/TikaServerPipesIntegrationTest.java
 delete mode 100644 tika-server/tika-server-core/src/test/resources/log4j.properties
 create mode 100644 tika-server/tika-server-core/src/test/resources/log4j2.properties
 rename tika-server/tika-server-core/src/test/resources/logging/{log4j_forked.xml => log4j2_forked.xml} (100%)
 create mode 100644 tika-server/tika-server-standard/assembly.xml
 rename tika-server/{tika-server-classic => tika-server-standard}/bin/init.d/tika (100%)
 rename tika-server/{tika-server-classic => tika-server-standard}/bin/install_tika_service.sh (100%)
 rename tika-server/{tika-server-classic => tika-server-standard}/bin/tika (100%)
 create mode 100755 tika-server/tika-server-standard/bin/tika.in.sh
 create mode 100644 tika-server/tika-server-standard/pom.xml
 create mode 100644 tika-server/tika-server-standard/src/main/java/org/apache/tika/server/standard/config/PDFServerConfig.java
 create mode 100644 tika-server/tika-server-standard/src/main/java/org/apache/tika/server/standard/config/TesseractServerConfig.java
 create mode 100644 tika-server/tika-server-standard/src/main/java/org/apache/tika/server/standard/resource/XMPMetadataResource.java
 create mode 100644 tika-server/tika-server-standard/src/main/java/org/apache/tika/server/standard/writer/XMPMessageBodyWriter.java
 create mode 100644 tika-server/tika-server-standard/src/main/resources/META-INF/services/org.apache.tika.server.core.ParseContextConfig
 create mode 100644 tika-server/tika-server-standard/src/main/resources/META-INF/services/org.apache.tika.server.core.resource.TikaServerResource
 create mode 100644 tika-server/tika-server-standard/src/main/resources/META-INF/services/org.apache.tika.server.core.writer.TikaServerWriter
 create mode 100644 tika-server/tika-server-standard/src/main/resources/log4j2.properties
 create mode 100644 tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/DetectorResourceTest.java
 create mode 100644 tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/FetcherTest.java
 create mode 100644 tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/MetadataResourceTest.java
 create mode 100644 tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/RecursiveMetadataFilterTest.java
 create mode 100644 tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/RecursiveMetadataResourceTest.java
 create mode 100644 tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/TikaDetectorsTest.java
 create mode 100644 tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/TikaMimeTypesTest.java
 create mode 100644 tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/TikaParsersTest.java
 create mode 100644 tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/TikaResourceTest.java
 create mode 100644 tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/UnpackerResourceTest.java
 create mode 100644 tika-server/tika-server-standard/src/test/resources/config/TIKA-3137-include.xml
 rename tika-server/{tika-server-classic => tika-server-standard}/src/test/resources/config/tika-config-for-server-tests.xml (100%)
 rename tika-server/{tika-server-classic => tika-server-standard}/src/test/resources/config/tika-config-url-fetcher.xml (100%)
 create mode 100644 tika-server/tika-server-standard/src/test/resources/log4j2.properties
 rename tika-server/{tika-server-classic => tika-server-standard}/src/test/resources/test-documents/2exe.docx (100%)
 rename tika-server/{tika-server-classic => tika-server-standard}/src/test/resources/test-documents/2pic.doc (100%)
 rename tika-server/{tika-server-classic => tika-server-standard}/src/test/resources/test-documents/2pic.docx (100%)
 rename tika-server/{tika-server-classic => tika-server-standard}/src/test/resources/test-documents/CDEC_WEATHER_2010_03_02 (100%)
 rename {tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module => tika-server/tika-server-standard}/src/test/resources/test-documents/Doc1_ole.doc (100%)
 rename tika-server/{tika-server-classic => tika-server-standard}/src/test/resources/test-documents/foo.csv (100%)
 rename tika-server/{tika-server-classic => tika-server-standard}/src/test/resources/test-documents/password.xls (100%)
 rename tika-server/{tika-server-classic => tika-server-standard}/src/test/resources/test-documents/pic.xls (100%)
 rename tika-server/{tika-server-classic => tika-server-standard}/src/test/resources/test-documents/pic.xlsx (100%)
 rename {tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module => tika-server/tika-server-standard}/src/test/resources/test-documents/test.doc (100%)
 rename tika-server/{tika-server-classic => tika-server-standard}/src/test/resources/test-documents/testHTML.html (100%)
 rename {tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-pdf-module => tika-server/tika-server-standard}/src/test/resources/test-documents/testOCR.pdf (100%)
 rename {tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-pdf-module => tika-server/tika-server-standard}/src/test/resources/test-documents/testPDFTwoTextBoxes.pdf (100%)
 rename tika-server/{tika-server-classic => tika-server-standard}/src/test/resources/test-documents/testPassword4Spaces.pdf (100%)
 rename tika-server/{tika-server-classic => tika-server-standard}/src/test/resources/test-documents/testRTF_npeFromWMFInTikaServer.rtf (100%)
 rename tika-server/{tika-server-classic => tika-server-standard}/src/test/resources/test-documents/testUnicodePassword.pdf (100%)
 rename {tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-microsoft-module => tika-server/tika-server-standard}/src/test/resources/test-documents/test_recursive_embedded.docx (100%)
 create mode 100644 tika-translate/src/main/java/org/apache/tika/language/translate/RTGTranslator.java
 create mode 100644 tika-translate/src/test/java/org/apache/tika/language/translate/RTGTranslatorTest.java

[tika] 01/01: Merge remote-tracking branch 'origin/main' into TIKA-3347

Posted by ta...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

tallison pushed a commit to branch TIKA-3347
in repository https://gitbox.apache.org/repos/asf/tika.git

commit 218d12d6f1cc84b243b8d7b1a5e16605c7374653
Merge: 473acc1 57c7a68
Author: tallison <ta...@apache.org>
AuthorDate: Wed May 19 11:37:56 2021 -0400

    Merge remote-tracking branch 'origin/main' into TIKA-3347
    
    # Conflicts:
    #	tika-parent/pom.xml

 .asf.yaml                                          |   28 +
 .gitattributes                                     |   10 +-
 .github/pull_request_template.md                   |   19 +
 CHANGES.txt                                        |   12 +-
 overview.html                                      |    4 +-
 pom.xml                                            |   44 +-
 tika-app/pom.xml                                   |   23 +-
 .../batch/DigestingAutoDetectParserFactory.java    |    3 +-
 .../apache/tika/cli/BatchCommandLineBuilder.java   |   10 +-
 .../src/main/java/org/apache/tika/cli/TikaCLI.java |  113 +-
 .../apache/tika/gui/ParsingTransferHandler.java    |    2 +-
 .../src/main/java/org/apache/tika/gui/TikaGUI.java |   22 +-
 tika-app/src/main/resources/log4j.properties       |   24 -
 tika-app/src/main/resources/log4j2.properties      |   28 +
 .../main/resources/log4j2_batch_process.properties |   29 +
 .../main/resources/log4j_batch_process.properties  |   24 -
 .../tika/cli/TikaCLIBatchIntegrationTest.java      |   12 +-
 .../test/java/org/apache/tika/cli/TikaCLITest.java |   67 +-
 .../tika/extractor/TestEmbeddedDocumentUtil.java   |    1 -
 .../resources/log4j2_batch_process_test.properties |   28 +
 .../resources/log4j_batch_process_test.properties  |   24 -
 tika-batch/pom.xml                                 |   52 +-
 .../apache/tika/batch/AutoDetectParserFactory.java |   11 +-
 .../org/apache/tika/batch/BatchNoRestartError.java |    5 +-
 .../java/org/apache/tika/batch/BatchProcess.java   |  196 +--
 .../apache/tika/batch/BatchProcessDriverCLI.java   |   91 +-
 .../org/apache/tika/batch/ConsumersManager.java    |   12 +-
 .../tika/batch/FileConsumerFutureResult.java       |   33 +-
 .../java/org/apache/tika/batch/FileResource.java   |   76 +-
 .../apache/tika/batch/FileResourceConsumer.java    |  143 +-
 .../org/apache/tika/batch/FileResourceCrawler.java |   46 +-
 .../batch/FileResourceCrawlerFutureResult.java     |   33 +-
 .../java/org/apache/tika/batch/FileStarted.java    |    8 +-
 .../tika/batch/IFileProcessorFutureResult.java     |    5 +-
 .../java/org/apache/tika/batch/Interrupter.java    |   38 +-
 .../org/apache/tika/batch/OutputStreamFactory.java |   11 +-
 .../tika/batch/ParallelFileProcessingResult.java   |   27 +-
 .../java/org/apache/tika/batch/ParserFactory.java  |    4 +-
 .../org/apache/tika/batch/PoisonFileResource.java  |   51 +-
 .../java/org/apache/tika/batch/StatusReporter.java |   58 +-
 .../tika/batch/StatusReporterFutureResult.java     |    2 +-
 .../batch/builders/AbstractConsumersBuilder.java   |   24 +-
 .../tika/batch/builders/BatchProcessBuilder.java   |  152 +-
 .../batch/builders/CommandLineParserBuilder.java   |   18 +-
 .../DefaultContentHandlerFactoryBuilder.java       |   10 +-
 .../builders/IContentHandlerFactoryBuilder.java    |    5 +-
 .../tika/batch/builders/ICrawlerBuilder.java       |   17 +-
 .../tika/batch/builders/IParserFactoryBuilder.java |    3 +-
 .../tika/batch/builders/InterrupterBuilder.java    |    6 +-
 .../builders/ObjectFromDOMAndQueueBuilder.java     |    8 +-
 .../tika/batch/builders/ObjectFromDOMBuilder.java  |    8 +-
 .../tika/batch/builders/ParserFactoryBuilder.java  |    7 +-
 .../tika/batch/builders/ReporterBuilder.java       |    7 +-
 .../batch/builders/SimpleLogReporterBuilder.java   |    9 +-
 .../tika/batch/builders/StatusReporterBuilder.java |   10 +-
 .../apache/tika/batch/fs/AbstractFSConsumer.java   |   11 +-
 .../apache/tika/batch/fs/BasicTikaFSConsumer.java  |   27 +-
 .../apache/tika/batch/fs/FSBatchProcessCLI.java    |   58 +-
 .../apache/tika/batch/fs/FSConsumersManager.java   |    4 +-
 .../apache/tika/batch/fs/FSDirectoryCrawler.java   |   43 +-
 .../apache/tika/batch/fs/FSDocumentSelector.java   |    7 +-
 .../org/apache/tika/batch/fs/FSFileResource.java   |   14 +-
 .../org/apache/tika/batch/fs/FSListCrawler.java    |   27 +-
 .../tika/batch/fs/FSOutputStreamFactory.java       |   30 +-
 .../org/apache/tika/batch/fs/FSProperties.java     |    3 +-
 .../main/java/org/apache/tika/batch/fs/FSUtil.java |   39 +-
 .../batch/fs/RecursiveParserWrapperFSConsumer.java |   32 +-
 .../tika/batch/fs/StreamOutRPWFSConsumer.java      |   46 +-
 .../fs/builders/BasicTikaFSConsumersBuilder.java   |  100 +-
 .../tika/batch/fs/builders/FSCrawlerBuilder.java   |   37 +-
 .../batch/fs/strawman/StrawManTikaAppDriver.java   |  229 ++-
 .../java/org/apache/tika/util/ClassLoaderUtil.java |   13 +-
 .../org/apache/tika/util/DurationFormatUtils.java  |    3 +-
 .../main/java/org/apache/tika/util/PropsUtil.java  |   19 +-
 .../main/java/org/apache/tika/util/XMLDOMUtil.java |   32 +-
 tika-batch/src/main/java/overview.html             |   38 +-
 .../tika/batch/CommandLineParserBuilderTest.java   |    7 +-
 .../RecursiveParserWrapperFSConsumerTest.java      |   40 +-
 .../org/apache/tika/batch/fs/BatchDriverTest.java  |   19 +-
 .../org/apache/tika/batch/fs/BatchProcessTest.java |   71 +-
 .../org/apache/tika/batch/fs/FSBatchTestBase.java  |  132 +-
 .../apache/tika/batch/fs/FSFileResourceTest.java   |    2 +-
 .../apache/tika/batch/fs/HandlerBuilderTest.java   |    6 +-
 .../tika/batch/fs/OutputStreamFactoryTest.java     |    6 +-
 .../apache/tika/batch/fs/StringStreamGobbler.java  |   55 +-
 .../tika/batch/fs/strawman/StrawmanTest.java       |    5 +-
 .../tika/batch/mock/MockConsumersBuilder.java      |    7 +-
 .../tika/batch/mock/MockConsumersManager.java      |   11 +-
 .../apache/tika/parser/mock/MockParserFactory.java |    3 +-
 tika-batch/src/test/resources/log4j-on.properties  |   27 -
 tika-batch/src/test/resources/log4j.properties     |   25 -
 tika-batch/src/test/resources/log4j2-on.properties |   29 +
 tika-batch/src/test/resources/log4j2.properties    |   28 +
 .../src/test/resources/log4j2_process.properties   |   28 +
 .../src/test/resources/log4j_process.properties    |   27 -
 tika-bundles/pom.xml                               |   28 +-
 tika-bundles/tika-bundle-classic/pom.xml           |  503 ------
 .../test/java/org/apache/tika/bundle/BundleIT.java |  361 ----
 .../src/test/resources/log4j.properties            |   24 -
 tika-bundles/tika-bundle-classic/test-bundles.xml  |   48 -
 tika-bundles/tika-bundle-standard/pom.xml          |  489 ++++++
 .../src/main/appended-resources/META-INF/LICENSE   |    0
 .../src/main/resources/META-INF/MANIFEST.MF        |    0
 .../test/java/org/apache/tika/bundle/BundleIT.java |  361 ++++
 .../src/test}/resources/log4j.properties           |    0
 .../src/test/resources}/test-documents.zip         |  Bin
 .../src/test/resources}/testOCR.jpg                |  Bin
 .../src/test/resources}/testPPT.pptx               |  Bin
 tika-bundles/tika-bundle-standard/test-bundles.xml |   48 +
 tika-core/pom.xml                                  |  484 +++---
 .../main/assembly/test-jar-with-dependencies.xml   |   38 +
 tika-core/src/main/java/org/apache/tika/Tika.java  |    3 +-
 .../tika/concurrent/SimpleThreadPoolExecutor.java  |   11 +-
 .../java/org/apache/tika/config/ConfigBase.java    |  438 +++++
 .../main/java/org/apache/tika/config/Param.java    |    2 +-
 .../java/org/apache/tika/config/ServiceLoader.java |   17 +-
 .../java/org/apache/tika/config/TikaConfig.java    |  398 +----
 .../org/apache/tika/detect/CompositeDetector.java  |    2 +-
 .../apache/tika/detect/FileCommandDetector.java    |    4 +-
 .../java/org/apache/tika/detect/MagicDetector.java |   58 +-
 .../org/apache/tika/embedder/ExternalEmbedder.java |   33 +-
 .../apache/tika/exception/RuntimeSAXException.java |   30 +
 .../apache/tika/exception/WriteLimitReached.java   |   22 -
 .../tika/exception/WriteLimitReachedException.java |   83 +
 .../tika/extractor/EmbeddedDocumentUtil.java       |    4 +-
 .../org/apache/tika/fork/ClassLoaderProxy.java     |    4 +-
 .../apache/tika/fork/MemoryURLStreamHandler.java   |    4 +-
 .../main/java/org/apache/tika/io/EndianUtils.java  |   24 +-
 .../java/org/apache/tika/io/FilenameUtils.java     |    2 +-
 .../org/apache/tika/io/TemporaryResources.java     |   16 +-
 .../java/org/apache/tika/metadata/Metadata.java    |    2 +-
 .../java/org/apache/tika/metadata/Property.java    |    6 +-
 .../metadata/filter/ClearByMimeMetadataFilter.java |    3 +-
 .../metadata/filter/CompositeMetadataFilter.java   |    2 +-
 .../filter/ExcludeFieldMetadataFilter.java         |    2 +-
 .../metadata/filter/FieldNameMappingFilter.java    |   41 +-
 .../filter/IncludeFieldMetadataFilter.java         |    2 +-
 .../tika/metadata/filter/MetadataFilter.java       |   31 +-
 .../apache/tika/metadata/filter/NoOpFilter.java    |    2 +-
 .../main/java/org/apache/tika/mime/MediaType.java  |   12 +-
 .../org/apache/tika/mime/MediaTypeRegistry.java    |    6 +-
 .../main/java/org/apache/tika/mime/MimeType.java   |    8 +-
 .../main/java/org/apache/tika/mime/MimeTypes.java  |    8 +-
 .../org/apache/tika/mime/MimeTypesFactory.java     |    2 +-
 .../java/org/apache/tika/mime/MimeTypesReader.java |   15 +-
 .../main/java/org/apache/tika/mime/Patterns.java   |    6 +-
 .../org/apache/tika/parser/CompositeParser.java    |   14 +-
 .../java/org/apache/tika/parser/DefaultParser.java |    2 +-
 .../java/org/apache/tika/parser/ParseContext.java  |    6 +-
 .../org/apache/tika/parser/ParserDecorator.java    |    2 +-
 .../java/org/apache/tika/parser/ParsingReader.java |   23 +-
 .../apache/tika/parser/RecursiveParserWrapper.java |   49 +-
 .../tika/parser/external/ExternalParser.java       |  104 +-
 .../external/ExternalParsersConfigReader.java      |   35 +-
 .../parser/external/ExternalParsersFactory.java    |    2 +-
 .../java/org/apache/tika/pipes/FetchEmitTuple.java |  131 ++
 .../java/org/apache/tika/pipes/HandlerConfig.java  |   81 +
 .../java/org/apache/tika/pipes/PipesClient.java    |  356 ++++
 .../java/org/apache/tika/pipes/PipesConfig.java    |   54 +
 .../org/apache/tika/pipes/PipesConfigBase.java     |  100 ++
 .../java/org/apache/tika/pipes/PipesException.java |   27 +
 .../java/org/apache/tika/pipes/PipesParser.java    |   75 +
 .../java/org/apache/tika/pipes/PipesResult.java    |   80 +
 .../java/org/apache/tika/pipes/PipesServer.java    |  480 ++++++
 .../apache/tika/pipes/async/AsyncClientConfig.java |   34 +
 .../org/apache/tika/pipes/async/AsyncConfig.java   |  116 ++
 .../org/apache/tika/pipes/async/AsyncEmitter.java  |  143 ++
 .../apache/tika/pipes/async/AsyncProcessor.java    |  215 +++
 .../tika/pipes/async/OfferLargerThanQueueSize.java |   41 +
 .../apache/tika/pipes/emitter/AbstractEmitter.java |   17 -
 .../org/apache/tika/pipes/emitter/EmitData.java    |   23 +-
 .../org/apache/tika/pipes/emitter/EmitKey.java     |   15 +-
 .../apache/tika/pipes/emitter/EmitterManager.java  |   21 +-
 .../org/apache/tika/pipes/fetcher/FetchKey.java    |   16 +-
 .../apache/tika/pipes/fetcher/FetcherManager.java  |   22 +-
 .../tika/pipes/fetcher/FileSystemFetcher.java      |  108 --
 .../tika/pipes/fetcher/fs/FileSystemFetcher.java   |  109 ++
 .../pipes/fetchiterator/EmptyFetchIterator.java    |   29 -
 .../tika/pipes/fetchiterator/FetchEmitTuple.java   |  102 --
 .../tika/pipes/fetchiterator/FetchIterator.java    |  211 ---
 .../fetchiterator/FileSystemFetchIterator.java     |  126 --
 .../pipesiterator/FileSystemPipesIterator.java     |  127 ++
 .../tika/pipes/pipesiterator/PipesIterator.java    |  254 +++
 .../java/org/apache/tika/sax/CleanPhoneText.java   |    2 +-
 .../org/apache/tika/sax/DIFContentHandler.java     |   12 +-
 .../org/apache/tika/sax/LinkContentHandler.java    |    4 +-
 .../org/apache/tika/sax/SafeContentHandler.java    |   12 +-
 .../org/apache/tika/sax/SecureContentHandler.java  |    2 +-
 .../org/apache/tika/sax/StandardOrganizations.java |    5 +-
 .../java/org/apache/tika/sax/StandardsText.java    |    8 +-
 .../org/apache/tika/sax/ToHTMLContentHandler.java  |    2 +-
 .../org/apache/tika/sax/ToXMLContentHandler.java   |    4 +-
 .../apache/tika/sax/WriteOutContentHandler.java    |   63 +-
 .../org/apache/tika/sax/XHTMLContentHandler.java   |    2 +-
 .../tika/sax/xpath/MatchingContentHandler.java     |    2 +-
 .../org/apache/tika/sax/xpath/XPathParser.java     |    2 +-
 .../org/apache/tika/utils/AnnotationUtils.java     |   19 +-
 .../java/org/apache/tika/utils/CharsetUtils.java   |    7 +-
 .../java/org/apache/tika/utils/ParserUtils.java    |    2 +-
 .../java/org/apache/tika/utils/RegexUtils.java     |    2 +-
 .../org/apache/tika/utils/ServiceLoaderUtils.java  |    5 +-
 .../java/org/apache/tika/utils/XMLReaderUtils.java |   18 +-
 .../org/apache/tika/mime/tika-mimetypes.xml        |    7 +
 .../org/apache/tika/MultiThreadedTikaTest.java     |    4 +-
 .../apache/tika/ResourceLoggingClassLoader.java    |    9 +-
 .../org/apache/tika/TestRereadableInputStream.java |    2 +-
 .../src/test/java/org/apache/tika/TikaTest.java    |    8 +-
 .../apache/tika/config/AbstractTikaConfigTest.java |    9 +
 .../java/org/apache/tika/config/DummyExecutor.java |    2 +-
 .../org/apache/tika/config/MockConfigTest.java     |  118 ++
 .../tika/config/TikaConfigSerializerTest.java      |   10 +-
 .../org/apache/tika/config/TikaConfigTest.java     |   64 +-
 .../apache/tika/config/TikaPipesConfigTest.java    |   94 ++
 .../org/apache/tika/detect/MagicDetectorTest.java  |    2 +-
 .../org/apache/tika/detect/NameDetectorTest.java   |    2 +-
 .../java/org/apache/tika/fork/ForkParserTest.java  |   52 +-
 .../org/apache/tika/io/TikaInputStreamTest.java    |    7 +-
 .../org/apache/tika/metadata/TestMetadata.java     |    4 +-
 .../tika/metadata/filter/MockUpperCaseFilter.java  |    2 +-
 .../tika/metadata/filter/TestMetadataFilter.java   |   18 +-
 .../org/apache/tika/mime/CustomReaderTest.java     |    4 +-
 .../java/org/apache/tika/mime/MediaTypeTest.java   |   24 +-
 .../org/apache/tika/mime/MimeTypesReaderTest.java  |    6 +-
 .../apache/tika/parser/CompositeParserTest.java    |    9 +-
 .../apache/tika/parser/ParserDecoratorTest.java    |   12 +-
 .../org/apache/tika/parser/mock/MockParser.java    |   32 +-
 .../apache/tika/parser/mock/MockParserTest.java    |   11 +
 .../tika/parser/multiple/MultipleParserTest.java   |    4 +-
 .../tika/pipes/async/AsyncProcessorTest.java       |  152 ++
 .../org/apache/tika/pipes/async/MockEmitter.java   |   58 +
 .../org/apache/tika/pipes/async/MockFetcher.java   |   43 +
 .../org/apache/tika/pipes/emitter/MockEmitter.java |   31 -
 .../tika/pipes/fetcher/FileSystemFetcherTest.java  |   54 -
 .../pipes/fetcher/fs/FileSystemFetcherTest.java    |   54 +
 .../fetchiterator/FileSystemFetchIteratorTest.java |   69 -
 .../pipesiterator/FileSystemPipesIteratorTest.java |   71 +
 .../tika/sax/BasicContentHandlerFactoryTest.java   |    8 +-
 .../apache/tika/sax/XHTMLContentHandlerTest.java   |    2 +-
 .../org/apache/tika/utils/AnnotationUtilsTest.java |    4 +-
 .../apache/tika/utils/ServiceLoaderUtilsTest.java  |    3 +-
 .../org/apache/tika/config/TIKA-3137-exclude.xml   |    8 +-
 .../apache/tika/config/TIKA-3137-field-mapping.xml |   33 +
 .../apache/tika/config/TIKA-3137-include-uc.xml    |    8 +-
 .../org/apache/tika/config/TIKA-3137-include.xml   |    8 +-
 .../org/apache/tika/config/TIKA-3137-mimes-uc.xml  |    8 +-
 .../org/apache/tika/config/emitters-config.xml     |   24 +-
 .../tika/config/emitters-duplicate-config.xml      |    4 +-
 .../apache/tika/config/fetch-iterator-config.xml   |   27 -
 .../tika/config/fetch-iterator-multiple-config.xml |   33 -
 .../org/apache/tika/config/fetchers-config.xml     |   28 +-
 .../tika/config/fetchers-duplicate-config.xml      |   28 +-
 .../tika/config/fetchers-nobasepath-config.xml     |   26 +-
 .../apache/tika/config/fetchers-noname-config.xml  |   26 +-
 .../org/apache/tika/config/mockConfig.xml          |   35 +
 .../apache/tika/config/pipes-iterator-config.xml   |   25 +
 .../tika/config/pipes-iterator-multiple-config.xml |   31 +
 .../test/resources/test-documents/mock_times.xml   |   26 +
 tika-deployment/tika-snap-server/snapcraft.yaml    |    2 +-
 tika-dotnet/pom.xml                                |    6 +-
 tika-eval/pom.xml                                  |   66 +-
 tika-eval/tika-eval-app/pom.xml                    |  357 ++--
 .../org/apache/tika/eval/app/AbstractProfiler.java |  504 +++---
 .../org/apache/tika/eval/app/EvalFilePaths.java    |    9 +-
 .../org/apache/tika/eval/app/ExtractComparer.java  |  266 ++-
 .../org/apache/tika/eval/app/ExtractProfiler.java  |  221 ++-
 .../org/apache/tika/eval/app/FileProfiler.java     |  114 +-
 .../java/org/apache/tika/eval/app/TikaEvalCLI.java |  239 +--
 .../apache/tika/eval/app/XMLErrorLogUpdater.java   |   95 +-
 .../tika/eval/app/batch/DBConsumersManager.java    |   10 +-
 .../tika/eval/app/batch/EvalConsumerBuilder.java   |   36 +-
 .../tika/eval/app/batch/EvalConsumersBuilder.java  |    5 +-
 .../eval/app/batch/ExtractComparerBuilder.java     |   11 +-
 .../eval/app/batch/ExtractProfilerBuilder.java     |   11 +-
 .../tika/eval/app/batch/FileProfilerBuilder.java   |   16 +-
 .../apache/tika/eval/app/db/AbstractDBBuffer.java  |    3 +-
 .../java/org/apache/tika/eval/app/db/ColInfo.java  |   23 +-
 .../java/org/apache/tika/eval/app/db/Cols.java     |   77 +-
 .../java/org/apache/tika/eval/app/db/DBBuffer.java |    9 +-
 .../java/org/apache/tika/eval/app/db/H2Util.java   |   19 +-
 .../java/org/apache/tika/eval/app/db/JDBCUtil.java |  173 +-
 .../org/apache/tika/eval/app/db/MimeBuffer.java    |   28 +-
 .../org/apache/tika/eval/app/db/TableInfo.java     |    2 +-
 .../java/org/apache/tika/eval/app/io/DBWriter.java |   32 +-
 .../org/apache/tika/eval/app/io/ExtractReader.java |  118 +-
 .../tika/eval/app/io/ExtractReaderException.java   |   20 +-
 .../org/apache/tika/eval/app/io/IDBWriter.java     |    8 +-
 .../apache/tika/eval/app/io/XMLLogMsgHandler.java  |    3 +-
 .../org/apache/tika/eval/app/io/XMLLogReader.java  |   43 +-
 .../org/apache/tika/eval/app/reports/Report.java   |  116 +-
 .../tika/eval/app/reports/ResultsReporter.java     |  113 +-
 .../tika/eval/app/reports/XLSXHREFFormatter.java   |    8 +-
 .../tika/eval/app/reports/XLSXNumFormatter.java    |    7 +-
 .../tika/eval/app/reports/XSLXCellFormatter.java   |    6 +-
 .../eval/app/tools/BatchTopCommonTokenCounter.java |   11 +-
 .../eval/app/tools/CommonTokenOverlapCounter.java  |   14 +-
 .../apache/tika/eval/app/tools/LeipzigHelper.java  |    3 +-
 .../apache/tika/eval/app/tools/LeipzigSampler.java |    5 +-
 .../eval/app/tools/SlowCompositeReaderWrapper.java |   57 +-
 .../tika/eval/app/tools/TopCommonTokenCounter.java |  202 +--
 .../apache/tika/eval/app/tools/TrainTestSplit.java |   15 +-
 .../tika-eval-app/src/main/resources/db.properties |    1 +
 .../apache/tika/eval/app/AnalyzerManagerTest.java  |    6 +-
 .../apache/tika/eval/app/ComparerBatchTest.java    |   48 +-
 .../org/apache/tika/eval/app/MockDBWriter.java     |   14 +-
 .../apache/tika/eval/app/ProfilerBatchTest.java    |   60 +-
 .../apache/tika/eval/app/SimpleComparerTest.java   |  187 +--
 .../org/apache/tika/eval/app/TikaEvalCLITest.java  |  210 ++-
 .../tika/eval/app/db/AbstractBufferTest.java       |   30 +-
 .../apache/tika/eval/app/io/ExtractReaderTest.java |   12 +-
 .../tika/eval/app/io/FatalExceptionReaderTest.java |    3 +-
 .../tika/eval/app/reports/ResultsReporterTest.java |    5 +-
 .../eval/app/tools/TopCommonTokenCounterTest.java  |   31 +-
 tika-eval/tika-eval-core/pom.xml                   |  352 ++--
 .../eval/core/metadata/TikaEvalMetadataFilter.java |   37 +-
 .../eval/core/textstats/BytesRefCalculator.java    |    3 +
 .../tika/eval/core/textstats/CommonTokens.java     |   10 +-
 .../core/textstats/CommonTokensBhattacharyya.java  |   12 +-
 .../eval/core/textstats/CommonTokensCosine.java    |    8 +-
 .../eval/core/textstats/CommonTokensHellinger.java |   14 +-
 .../eval/core/textstats/CommonTokensKLDNormed.java |   16 +-
 .../core/textstats/CommonTokensKLDivergence.java   |   12 +-
 .../textstats/CompositeTextStatsCalculator.java    |   41 +-
 .../textstats/LanguageAwareTokenCountStats.java    |    1 +
 .../eval/core/textstats/StringStatsCalculator.java |    1 +
 .../eval/core/textstats/TextProfileSignature.java  |   18 +-
 .../eval/core/textstats/TextSha256Signature.java   |    7 +-
 .../core/textstats/TokenCountPriorityQueue.java    |    5 +-
 .../core/textstats/TokenCountStatsCalculator.java  |    1 +
 .../tika/eval/core/textstats/TokenEntropy.java     |    5 +-
 .../tika/eval/core/textstats/TokenLengths.java     |    1 +
 .../tika/eval/core/textstats/TopNTokens.java       |    6 +-
 .../eval/core/textstats/UnicodeBlockCounter.java   |    1 +
 .../core/tokens/AlphaIdeographFilterFactory.java   |   51 +-
 .../eval/core/tokens/AnalyzerDeserializer.java     |  105 +-
 .../tika/eval/core/tokens/AnalyzerManager.java     |    7 +-
 .../tokens/CJKBigramAwareLengthFilterFactory.java  |    8 +-
 .../eval/core/tokens/CommonTokenCountManager.java  |   31 +-
 .../tika/eval/core/tokens/CommonTokenResult.java   |    7 +-
 .../tika/eval/core/tokens/ContrastStatistics.java  |   48 +-
 .../apache/tika/eval/core/tokens/LangModel.java    |    4 +-
 .../tika/eval/core/tokens/TokenContraster.java     |   29 +-
 .../eval/core/tokens/TokenCountPriorityQueue.java  |    4 +-
 .../apache/tika/eval/core/tokens/TokenCounter.java |   31 +-
 .../apache/tika/eval/core/tokens/TokenIntPair.java |   17 +-
 .../tika/eval/core/tokens/TokenStatistics.java     |   85 +-
 .../tokens/URLEmailNormalizingFilterFactory.java   |    5 +-
 .../tika/eval/core/util/ContentTagParser.java      |   39 +-
 .../apache/tika/eval/core/util/ContentTags.java    |    3 +-
 .../tika/eval/core/util/EvalExceptionUtils.java    |    1 +
 .../src/main/resources/log4j.properties            |    3 +-
 .../apache/tika/eval/core/langid/LangIdTest.java   |   18 +-
 .../core/metadata/TikaEvalMetadataFilterTest.java  |   13 +-
 .../tika/eval/core/textstats/TextStatsTest.java    |   58 +-
 .../tika/eval/core/tokens/LuceneTokenCounter.java  |   26 +-
 .../tika/eval/core/tokens/TokenCounterTest.java    |   18 +-
 .../apache/tika/eval/core/util/LanguageIdTest.java |    4 +-
 .../apache/tika/eval/core/util/MimeUtilTest.java   |    5 +-
 tika-example/pom.xml                               |   78 +-
 .../apache/tika/example/ContentHandlerExample.java |   19 +-
 .../org/apache/tika/example/CustomMimeInfo.java    |   10 +-
 .../org/apache/tika/example/DirListParser.java     |   55 +-
 .../apache/tika/example/DisplayMetInstance.java    |    6 +-
 .../apache/tika/example/DumpTikaConfigExample.java |    9 +-
 .../example/EncryptedPrescriptionDetector.java     |    8 +-
 .../tika/example/EncryptedPrescriptionParser.java  |   16 +-
 .../apache/tika/example/ExtractEmbeddedFiles.java  |   18 +-
 .../tika/example/GrabPhoneNumbersExample.java      |   11 +-
 .../org/apache/tika/example/ImportContextImpl.java |   20 +-
 .../tika/example/InterruptableParsingExample.java  |   17 +-
 .../java/org/apache/tika/example/Language.java     |   25 +-
 .../tika/example/LanguageDetectingParser.java      |   10 +-
 .../tika/example/LanguageDetectorExample.java      |    4 +-
 .../org/apache/tika/example/LuceneIndexer.java     |    1 +
 .../apache/tika/example/LuceneIndexerExtended.java |    4 +-
 .../tika/example/MetadataAwareLuceneIndexer.java   |    6 +-
 .../java/org/apache/tika/example/MyFirstTika.java  |   23 +-
 .../org/apache/tika/example/ParsingExample.java    |   34 +-
 .../tika/example/PickBestTextEncodingParser.java   |   96 +-
 .../apache/tika/example/PrescriptionParser.java    |   18 +-
 .../java/org/apache/tika/example/RecentFiles.java  |   42 +-
 .../org/apache/tika/example/RollbackSoftware.java  |   54 +-
 .../org/apache/tika/example/SpringExample.java     |   12 +-
 .../tika/example/StandardsExtractionExample.java   |  124 +-
 .../org/apache/tika/example/TIAParsingExample.java |   20 +-
 .../apache/tika/example/TextStatsFromTikaEval.java |   11 +-
 .../tika/example/TranscribeTranslateExample.java   |  121 ++
 .../apache/tika/example/TrecDocumentGenerator.java |    6 +-
 .../java/org/apache/tika/example/ZipListFiles.java |    7 +-
 .../tika/example/AdvancedTypeDetectorTest.java     |    4 +-
 .../tika/example/ContentHandlerExampleTest.java    |   31 +-
 .../tika/example/DumpTikaConfigExampleTest.java    |   27 +-
 .../tika/example/ExtractEmbeddedFilesTest.java     |    2 +-
 .../tika/example/LanguageDetectorExampleTest.java  |    5 +-
 .../tika/example/SimpleTextExtractorTest.java      |   20 +-
 .../tika/example/SimpleTypeDetectorTest.java       |   30 +-
 .../apache/tika/example/TestParsingExample.java    |   37 +-
 .../apache/tika/example/TranslatorExampleTest.java |   10 +-
 tika-fuzzing/pom.xml                               |  121 +-
 .../java/org/apache/tika/fuzzing/Transformer.java  |    1 -
 .../apache/tika/fuzzing/general/ByteDeleter.java   |    1 -
 .../apache/tika/fuzzing/general/ByteInjector.java  |    1 -
 .../org/apache/tika/fuzzing/pdf/EvilCOSWriter.java |    2 +-
 .../apache/tika/fuzzing/pdf/PDFTransformer.java    |    1 -
 tika-fuzzing/src/main/resources/log4j2.properties  |   28 +
 tika-java7/pom.xml                                 |    6 +-
 .../filetypedetector/TikaFileTypeDetectorTest.java |    1 -
 tika-langdetect/pom.xml                            |  132 +-
 tika-langdetect/tika-langdetect-commons/pom.xml    |   63 -
 .../tika/langdetect/LanguageDetectorTest.java      |   90 -
 .../src/test/resources/log4j.properties            |   24 -
 tika-langdetect/tika-langdetect-lingo24/pom.xml    |  121 +-
 .../langdetect/lingo24/Lingo24LangDetector.java    |   45 +-
 .../lingo24/langdetect.lingo24.properties          |    2 +-
 .../lingo24/Lingo24LangDetectorTest.java           |   32 +-
 tika-langdetect/tika-langdetect-mitll-text/pom.xml |  121 +-
 .../tika/langdetect/mitll/TextLangDetector.java    |   58 +-
 .../langdetect/mitll/TextLangDetectorTest.java     |   27 +-
 .../src/test/resources/log4j.properties            |   24 -
 .../src/test/resources/log4j2.properties           |   29 +
 tika-langdetect/tika-langdetect-opennlp/pom.xml    |   85 +-
 .../tika/langdetect/opennlp/OpenNLPDetector.java   |  133 +-
 .../opennlp/ProbingLanguageDetector.java           |   34 +-
 .../langdetect/opennlp/OpenNLPDetectorTest.java    |   23 +-
 tika-langdetect/tika-langdetect-optimaize/pom.xml  |   93 +-
 .../optimaize/OptimaizeLangDetector.java           |  372 +++--
 .../optimaize/OptimaizeLangDetectorTest.java       |  293 ++--
 .../tika-langdetect-test-commons/pom.xml           |   54 +
 .../tika/langdetect/LanguageDetectorTest.java      |   91 +
 .../src/main/resources/log4j2.properties           |   28 +
 .../apache/tika/langdetect/language-tests/da.test  |    0
 .../apache/tika/langdetect/language-tests/de.test  |    0
 .../apache/tika/langdetect/language-tests/el.test  |    0
 .../apache/tika/langdetect/language-tests/en.test  |    0
 .../apache/tika/langdetect/language-tests/es.test  |    0
 .../apache/tika/langdetect/language-tests/et.test  |    0
 .../apache/tika/langdetect/language-tests/fi.test  |    0
 .../apache/tika/langdetect/language-tests/fr.test  |    0
 .../apache/tika/langdetect/language-tests/it.test  |    0
 .../apache/tika/langdetect/language-tests/ja.test  |    0
 .../apache/tika/langdetect/language-tests/lt.test  |    0
 .../apache/tika/langdetect/language-tests/nl.test  |    0
 .../apache/tika/langdetect/language-tests/pt.test  |    0
 .../apache/tika/langdetect/language-tests/sv.test  |    0
 .../apache/tika/langdetect/language-tests/th.test  |    0
 .../apache/tika/langdetect/language-tests/zh.test  |    0
 .../org/apache/tika/langdetect/text-test.tsv       |    0
 tika-langdetect/tika-langdetect-tika/pom.xml       |  107 +-
 .../tika/langdetect/tika/LanguageIdentifier.java   |    5 +-
 .../tika/langdetect/tika/LanguageProfile.java      |   28 +-
 .../tika/langdetect/tika/TikaLanguageDetector.java |   11 +-
 .../org/apache/tika/langdetect/tika/fa.ngp         |   14 +
 .../langdetect/tika/LanguageIdentifierTest.java    |   16 +-
 .../tika/LanguageProfilerBuilderTest.java          |   15 +-
 tika-parent/checkstyle.xml                         |   14 +-
 tika-parent/pom.xml                                |   74 +-
 tika-parsers/pom.xml                               |  105 +-
 tika-parsers/tika-parsers-advanced/pom.xml         |   89 -
 .../tika-age-recogniser/pom.xml                    |  294 ----
 tika-parsers/tika-parsers-advanced/tika-dl/pom.xml |  389 -----
 .../tika-parser-advancedmedia-module/pom.xml       |  133 --
 .../recognition/ObjectRecognitionParser.java       |  170 --
 .../recognition/tf/TensorflowImageRecParser.java   |  179 --
 .../tf/TensorflowImageRecParserTest.java           |   60 -
 .../tf/TensorflowVideoRecParserTest.java           |   57 -
 .../tika-parser-nlp-module/pom.xml                 |  342 ----
 .../apache/tika/parser/ctakes/CTAKESConfig.java    |  373 -----
 .../org/apache/tika/parser/ctakes/CTAKESUtils.java |  252 ---
 .../java/org/apache/tika/parser/geo/GeoTag.java    |   63 -
 .../tika/parser/geo/NameEntityExtractor.java       |  116 --
 .../apache/tika/parser/journal/TEIDOMParser.java   |  911 ----------
 .../parser/ner/corenlp/CoreNLPNERecogniser.java    |  178 --
 .../tika/parser/ner/grobid/GrobidNERecogniser.java |  257 ---
 .../tika/parser/ner/mitie/MITIENERecogniser.java   |  172 --
 .../tika/parser/ner/NamedEntityParserTest.java     |   96 --
 .../tika/parser/ner/opennlp/ModelGetter.groovy     |  127 --
 tika-parsers/tika-parsers-classic/pom.xml          |   87 -
 .../tika-parsers-classic-modules/pom.xml           |  122 --
 .../tika-parser-apple-module/pom.xml               |   65 -
 .../tika/parser/apple/AppleSingleFileParser.java   |  192 ---
 .../tika/parser/iwork/IWorkPackageParser.java      |  217 ---
 .../tika/parser/iwork/NumbersContentHandler.java   |  234 ---
 .../tika/parser/iwork/PagesContentHandler.java     |  474 ------
 .../parser/iwork/iwana/IWork13PackageParser.java   |  161 --
 .../parser/iwork/iwana/IWork18PackageParser.java   |  152 --
 .../tika-parser-audiovideo-module/pom.xml          |   61 -
 .../org/apache/tika/parser/audio/AudioParser.java  |  154 --
 .../org/apache/tika/parser/audio/MidiParser.java   |  121 --
 .../org/apache/tika/parser/mp3/ID3v1Handler.java   |  180 --
 .../org/apache/tika/parser/mp3/ID3v22Handler.java  |  160 --
 .../org/apache/tika/parser/mp3/ID3v23Handler.java  |  139 --
 .../org/apache/tika/parser/mp3/ID3v24Handler.java  |  144 --
 .../org/apache/tika/parser/mp3/ID3v2Frame.java     |  432 -----
 .../java/org/apache/tika/parser/mp3/Mp3Parser.java |  267 ---
 .../org/apache/tika/parser/video/FLVParser.java    |  265 ---
 .../org/apache/tika/parser/mp3/Mp3ParserTest.java  |  363 ----
 .../tika-parser-cad-module/pom.xml                 |   61 -
 .../java/org/apache/tika/parser/dwg/DWGParser.java |  342 ----
 .../tika-parser-code-module/pom.xml                |   99 --
 .../apache/tika/parser/asm/XHTMLClassVisitor.java  |  316 ----
 .../apache/tika/parser/code/SourceCodeParser.java  |  149 --
 .../tika/parser/executable/ExecutableParser.java   |  407 -----
 .../tika/parser/code/SourceCodeParserTest.java     |  131 --
 .../tika-parser-crypto-module/pom.xml              |   65 -
 .../org/apache/tika/parser/crypto/Pkcs7Parser.java |   89 -
 .../org/apache/tika/parser/crypto/TSDParser.java   |  391 -----
 .../tika-parser-digest-commons/pom.xml             |   50 -
 .../tika-parser-font-module/pom.xml                |   62 -
 .../tika-parser-html-commons/pom.xml               |   59 -
 .../sax/boilerpipe/BoilerpipeContentHandler.java   |  371 -----
 .../tika-parser-html-module/pom.xml                |   80 -
 .../org/apache/tika/parser/html/HtmlHandler.java   |  434 -----
 .../apache/tika/parser/html/HtmlParserTest.java    | 1377 ----------------
 .../tika-parser-image-module/pom.xml               |   99 --
 .../org/apache/tika/parser/image/BPGParser.java    |  172 --
 .../org/apache/tika/parser/image/ICNSParser.java   |  133 --
 .../tika/parser/image/ImageMetadataExtractor.java  |  640 -------
 .../apache/tika/parser/image/MetadataFields.java   |   89 -
 .../org/apache/tika/parser/image/PSDParser.java    |  269 ---
 .../tika-parser-jdbc-commons/pom.xml               |   30 -
 .../apache/tika/parser/jdbc/JDBCTableReader.java   |  328 ----
 .../tika-parser-mail-commons/pom.xml               |   45 -
 .../tika-parser-mail-module/pom.xml                |   89 -
 .../org/apache/tika/parser/mbox/MboxParser.java    |  218 ---
 .../tika-parser-microsoft-module/pom.xml           |  190 ---
 .../detect/microsoft/POIFSContainerDetector.java   |  485 ------
 .../microsoft/MSEmbeddedStreamTranslator.java      |  119 --
 .../tika/parser/microsoft/AbstractListManager.java |  274 ---
 .../parser/microsoft/AbstractPOIFSExtractor.java   |  279 ----
 .../tika/parser/microsoft/ExcelExtractor.java      |  733 --------
 .../tika/parser/microsoft/HSLFExtractor.java       |  561 -------
 .../tika/parser/microsoft/JackcessExtractor.java   |  420 -----
 .../apache/tika/parser/microsoft/ListManager.java  |  206 ---
 .../apache/tika/parser/microsoft/OfficeParser.java |  338 ----
 .../tika/parser/microsoft/OldExcelParser.java      |   91 -
 .../tika/parser/microsoft/OutlookExtractor.java    |  729 --------
 .../tika/parser/microsoft/SummaryExtractor.java    |  246 ---
 .../apache/tika/parser/microsoft/TNEFParser.java   |  123 --
 .../tika/parser/microsoft/WordExtractor.java       |  722 --------
 .../tika/parser/microsoft/chm/ChmBlockInfo.java    |  194 ---
 .../tika/parser/microsoft/chm/ChmCommons.java      |  367 -----
 .../microsoft/chm/ChmDirectoryListingSet.java      |  397 -----
 .../tika/parser/microsoft/chm/ChmExtractor.java    |  392 -----
 .../tika/parser/microsoft/chm/ChmItsfHeader.java   |  500 ------
 .../tika/parser/microsoft/chm/ChmItspHeader.java   |  530 ------
 .../tika/parser/microsoft/chm/ChmLzxState.java     |  322 ----
 .../parser/microsoft/chm/ChmLzxcControlData.java   |  304 ----
 .../parser/microsoft/chm/ChmLzxcResetTable.java    |  326 ----
 .../tika/parser/microsoft/chm/ChmParser.java       |  111 --
 .../tika/parser/microsoft/chm/ChmPmgiHeader.java   |  171 --
 .../tika/parser/microsoft/chm/ChmPmglHeader.java   |  198 ---
 .../microsoft/chm/DirectoryListingEntry.java       |  141 --
 .../parser/microsoft/onenote/ExtendedGUID.java     |   86 -
 .../tika/parser/microsoft/onenote/IndentUtil.java  |   27 -
 .../parser/microsoft/onenote/OneNoteParser.java    |  211 ---
 .../tika/parser/microsoft/onenote/OneNotePtr.java  | 1223 --------------
 .../microsoft/ooxml/AbstractOOXMLExtractor.java    |  536 ------
 .../microsoft/ooxml/OOXMLExtractorFactory.java     |  323 ----
 .../microsoft/ooxml/OOXMLTikaBodyPartHandler.java  |  463 ------
 .../ooxml/OOXMLWordAndPowerPointTextHandler.java   |  574 -------
 .../ooxml/POIXMLTextExtractorDecorator.java        |   51 -
 .../ooxml/SXSLFPowerPointExtractorDecorator.java   |  486 ------
 .../ooxml/XSLFPowerPointExtractorDecorator.java    |  380 -----
 .../ooxml/XSSFBExcelExtractorDecorator.java        |  164 --
 .../ooxml/XSSFExcelExtractorDecorator.java         |  611 -------
 .../ooxml/XWPFWordExtractorDecorator.java          |  491 ------
 .../microsoft/ooxml/xps/XPSPageContentHandler.java |  375 -----
 .../xslf/XSLFEventBasedPowerPointExtractor.java    |  217 ---
 .../ooxml/xwpf/XWPFEventBasedWordExtractor.java    |  376 -----
 .../ml2006/WordAndPowerPointTextPartHandler.java   |   67 -
 .../tika/parser/microsoft/rtf/TextExtractor.java   | 1539 -----------------
 .../microsoft/xml/AbstractXML2003Parser.java       |  131 --
 .../parser/microsoft/xml/SpreadsheetMLParser.java  |  157 --
 .../tika/parser/microsoft/xml/WordMLParser.java    |  300 ----
 .../tika/parser/microsoft/ExcelParserTest.java     |  569 -------
 .../tika/parser/microsoft/JackcessParserTest.java  |  186 ---
 .../parser/microsoft/chm/TestChmExtraction.java    |  245 ---
 .../parser/microsoft/ooxml/OOXMLParserTest.java    | 1743 --------------------
 .../parser/microsoft/ooxml/SXSLFExtractorTest.java |  608 -------
 .../parser/microsoft/ooxml/SXWPFExtractorTest.java |  858 ----------
 .../ooxml/xwpf/ml2006/Word2006MLParserTest.java    |  201 ---
 .../parser/microsoft/pst/OutlookPSTParserTest.java |  168 --
 .../tika/parser/microsoft/rtf/RTFParserTest.java   |  496 ------
 .../parser/microsoft/xml/XML2003ParserTest.java    |   88 -
 .../tika-parser-miscoffice-module/pom.xml          |   97 --
 .../apache/tika/detect/ole/MiscOLEDetector.java    |  215 ---
 .../apache/tika/parser/dif/DIFContentHandler.java  |  149 --
 .../java/org/apache/tika/parser/dif/DIFParser.java |   86 -
 .../org/apache/tika/parser/epub/EpubParser.java    |  486 ------
 .../apache/tika/parser/hwp/HwpTextExtractorV5.java |  501 ------
 .../tika/parser/odf/OpenDocumentBodyHandler.java   |  564 -------
 .../apache/tika/parser/odf/OpenDocumentParser.java |  367 -----
 .../tika/parser/wordperfect/QPWTextExtractor.java  |  242 ---
 .../wordperfect/WP5DocumentAreaExtractor.java      |  111 --
 .../wordperfect/WP6DocumentAreaExtractor.java      |  172 --
 .../tika/parser/wordperfect/WPInputStream.java     |  235 ---
 .../tika-parser-news-module/pom.xml                |   71 -
 .../org/apache/tika/parser/feed/FeedParser.java    |  129 --
 .../apache/tika/parser/iptc/IptcAnpaParser.java    |  854 ----------
 .../tika-parser-ocr-module/pom.xml                 |   71 -
 .../apache/tika/parser/ocr/TesseractOCRParser.java |  799 ---------
 .../tika/parser/ocr/TesseractOCRParserTest.java    |  321 ----
 .../tika-parser-pdf-module/pom.xml                 |  127 --
 .../apache/tika/parser/pdf/AbstractPDF2XHTML.java  | 1059 ------------
 .../tika/parser/pdf/ImageGraphicsEngine.java       |  490 ------
 .../java/org/apache/tika/parser/pdf/PDF2XHTML.java |  331 ----
 .../tika/parser/pdf/PDFEncodedStringDecoder.java   |  119 --
 .../java/org/apache/tika/parser/pdf/PDFParser.java |  673 --------
 .../org/apache/tika/parser/pdf/XFAExtractor.java   |  311 ----
 .../org/apache/tika/parser/pdf/PDFParserTest.java  | 1348 ---------------
 .../tika-parser-pkg-module/pom.xml                 |   96 --
 .../apache/tika/parser/pkg/CompressorParser.java   |  259 ---
 .../org/apache/tika/parser/pkg/PackageParser.java  |  478 ------
 .../apache/tika/parser/pkg/AbstractPkgTest.java    |   90 -
 .../apache/tika/parser/pkg/PackageParserTest.java  |   84 -
 .../tika-parser-text-module/pom.xml                |   83 -
 .../org/apache/tika/parser/csv/CSVSniffer.java     |  397 -----
 .../apache/tika/parser/csv/TextAndCSVParser.java   |  356 ----
 .../tika/parser/strings/Latin1StringsParser.java   |  322 ----
 .../apache/tika/parser/strings/StringsParser.java  |  294 ----
 .../apache/tika/parser/txt/CharsetDetector.java    |  610 -------
 .../org/apache/tika/parser/txt/CharsetMatch.java   |  271 ---
 .../apache/tika/parser/txt/CharsetRecog_mbcs.java  |  537 ------
 .../tika/parser/strings/StringsParserTest.java     |   78 -
 .../tika-parser-xml-module/pom.xml                 |   65 -
 .../java/org/apache/tika/parser/xml/XMLParser.java |   89 -
 .../org/apache/tika/parser/xml/XMLProfiler.java    |  150 --
 .../tika-parser-xmp-commons/pom.xml                |   61 -
 .../tika/parser/xmp/JempboxExtractorTest.java      |  136 --
 .../tika-parser-zip-commons/pom.xml                |   60 -
 .../org/apache/tika/detect/zip/IPADetector.java    |  120 --
 .../tika/detect/zip/StreamingDetectContext.java    |   82 -
 .../tika/detect/zip/ZipContainerDetectorBase.java  |  114 --
 .../tika-parsers-classic-package/pom.xml           |  425 -----
 .../tika/config/TikaEncodingDetectorTest.java      |  285 ----
 .../tika/detect/TestContainerAwareDetector.java    |  566 -------
 .../apache/tika/parser/AutoDetectParserTest.java   |  470 ------
 .../tika/parser/AutoDetectReaderParserTest.java    |  100 --
 .../tika/parser/RecursiveParserWrapperTest.java    |  412 -----
 .../java/org/apache/tika/parser/TestParsers.java   |  139 --
 .../apache/tika/parser/TestXMLEntityExpansion.java |  153 --
 .../parser/fork/ForkParserIntegrationTest.java     |  324 ----
 .../apache/tika/parser/mail/RFC822ParserTest.java  |  170 --
 .../org/apache/tika/parser/pdf/PDFParserTest.java  |  407 -----
 .../apache/tika/parser/pkg/Seven7ParserTest.java   |  182 --
 .../org/apache/tika/parser/pkg/ZipParserTest.java  |  142 --
 .../org/apache/tika/parser/TIKA-3137-include.xml   |   38 -
 tika-parsers/tika-parsers-extended/pom.xml         |  147 +-
 .../tika-parser-scientific-module/pom.xml          |  439 ++---
 .../apache/tika/parser/envi/EnviHeaderParser.java  |    7 +-
 .../org/apache/tika/parser/gdal/GDALParser.java    |   63 +-
 .../org/apache/tika/parser/grib/GribParser.java    |   64 +-
 .../org/apache/tika/parser/isatab/ISATabUtils.java |    2 +-
 .../apache/tika/parser/isatab/ISArchiveParser.java |    9 +-
 .../tika-parser-sqlite3-module/pom.xml             |  160 +-
 .../tika/parser/sqlite3/SQLite3DBParser.java       |   10 +-
 .../pom.xml                                        |   84 +-
 .../tika/parser/sqlite3/SQLite3ParserTest.java     |    2 +-
 tika-parsers/tika-parsers-ml/pom.xml               |   92 ++
 .../tika-parsers-ml/tika-age-recogniser/pom.xml    |  298 ++++
 .../tika/parser/recognition/AgeRecogniser.java     |    0
 .../parser/recognition/AgeRecogniserConfig.java    |    0
 .../tika/parser/recognition/AgeRecogniserTest.java |    0
 .../tika/parser/recognition/tika-config-age.xml    |    0
 tika-parsers/tika-parsers-ml/tika-dl/pom.xml       |  389 +++++
 .../tika/dl/imagerec/DL4JInceptionV3Net.java       |    0
 .../org/apache/tika/dl/imagerec/DL4JVGG16Net.java  |    0
 .../tika/dl/imagerec/DL4JInceptionV3NetTest.java   |    0
 .../apache/tika/dl/imagerec/DL4JVGG16NetTest.java  |    0
 .../resources/org/apache/tika/dl/imagerec/cat.jpg  |  Bin
 .../tika/dl/imagerec/dl4j-inception3-config.xml    |    0
 .../apache/tika/dl/imagerec/dl4j-vgg16-config.xml  |    0
 .../resources/org/apache/tika/dl/imagerec/lion.jpg |  Bin
 .../tika-parser-advancedmedia-module/pom.xml       |  133 ++
 .../tika/parser/captioning/CaptionObject.java      |    0
 .../captioning/tf/TensorflowRESTCaptioner.java     |    0
 .../tika/parser/pot/PooledTimeSeriesParser.java    |    0
 .../tika/parser/recognition/ObjectRecogniser.java  |    0
 .../recognition/ObjectRecognitionParser.java       |  170 ++
 .../tika/parser/recognition/RecognisedObject.java  |    0
 .../recognition/tf/TensorflowImageRecParser.java   |  174 ++
 .../recognition/tf/TensorflowRESTRecogniser.java   |    0
 .../tf/TensorflowRESTVideoRecogniser.java          |    0
 .../tika/parser/captioning/tf/caption_generator.py |    0
 .../apache/tika/parser/captioning/tf/im2txtapi.py  |    0
 .../tika/parser/captioning/tf/model_info.xml       |    0
 .../tika/parser/captioning/tf/model_wrapper.py     |    0
 .../apache/tika/parser/captioning/tf/vocabulary.py |    0
 .../tika/parser/recognition/tf/inception_v4.py     |    0
 .../tika/parser/recognition/tf/inceptionapi.py     |    0
 .../tika/parser/recognition/tf/video_util.py       |    0
 .../recognition/tika-config-tflow-im2txt-rest.xml  |    0
 .../parser/recognition/tika-config-tflow-rest.xml  |    0
 .../recognition/tika-config-tflow-video-rest.xml   |    0
 .../tika/parser/recognition/tika-config-tflow.xml  |    0
 .../recognition/ObjectRecognitionParserTest.java   |    0
 .../tf/TensorflowImageRecParserTest.java           |   59 +
 .../tf/TensorflowVideoRecParserTest.java           |   56 +
 .../tika-parsers-ml/tika-parser-nlp-module/pom.xml |  334 ++++
 .../parser/ctakes/CTAKESAnnotationProperty.java    |    0
 .../apache/tika/parser/ctakes/CTAKESConfig.java    |  373 +++++
 .../tika/parser/ctakes/CTAKESContentHandler.java   |    0
 .../apache/tika/parser/ctakes/CTAKESParser.java    |    0
 .../tika/parser/ctakes/CTAKESSerializer.java       |    0
 .../org/apache/tika/parser/ctakes/CTAKESUtils.java |  250 +++
 .../java/org/apache/tika/parser/geo/GeoParser.java |    0
 .../apache/tika/parser/geo/GeoParserConfig.java    |    0
 .../java/org/apache/tika/parser/geo/GeoTag.java    |   63 +
 .../tika/parser/geo/NameEntityExtractor.java       |  116 ++
 .../parser/geo/gazetteer/GeoGazetteerClient.java   |    0
 .../apache/tika/parser/geo/gazetteer/Location.java |    0
 .../tika/parser/journal/GrobidRESTParser.java      |    0
 .../apache/tika/parser/journal/JournalParser.java  |    0
 .../apache/tika/parser/journal/TEIDOMParser.java   |  911 ++++++++++
 .../org/apache/tika/parser/ner/NERecogniser.java   |    0
 .../apache/tika/parser/ner/NamedEntityParser.java  |    0
 .../parser/ner/corenlp/CoreNLPNERecogniser.java    |  178 ++
 .../tika/parser/ner/grobid/GrobidNERecogniser.java |  257 +++
 .../tika/parser/ner/mitie/MITIENERecogniser.java   |  173 ++
 .../tika/parser/ner/nltk/NLTKNERecogniser.java     |    0
 .../parser/ner/opennlp/OpenNLPNERecogniser.java    |    0
 .../tika/parser/ner/opennlp/OpenNLPNameFinder.java |    0
 .../tika/parser/ner/regex/RegexNERecogniser.java   |    0
 .../parser/sentiment/SentimentAnalysisParser.java  |    0
 .../services/org.apache.tika.parser.Parser         |    0
 .../tika/parser/ctakes/CTAKESConfig.properties     |    0
 .../tika/parser/geo/GeoTopicConfig.properties      |    0
 .../tika/parser/journal/GrobidExtractor.properties |    0
 .../tika/parser/ner/grobid/GrobidServer.properties |    0
 .../tika/parser/ner/nltk/NLTKServer.properties     |    0
 .../org/apache/tika/parser/ner/regex/ner-regex.txt |    0
 .../org/apache/tika/parser/geo/GeoParserTest.java  |    0
 .../tika/parser/journal/JournalParserTest.java     |    0
 .../org/apache/tika/parser/journal/TEITest.java    |    0
 .../tika/parser/ner/NamedEntityParserTest.java     |   96 ++
 .../tika/parser/ner/nltk/NLTKNERecogniserTest.java |    0
 .../parser/ner/regex/RegexNERecogniserTest.java    |    0
 .../sentiment/SentimentAnalysisParserTest.java     |    0
 .../tika/config/TIKA-3078-geo.topic.GeoParser.xml  |    0
 .../tika/parser/ner/opennlp/ModelGetter.groovy     |  127 ++
 .../apache/tika/parser/ner/opennlp/get-models.sh   |    0
 .../org/apache/tika/parser/ner/regex/ner-regex.txt |    0
 .../apache/tika/parser/ner/regex}/tika-config.xml  |    0
 .../org/apache/tika/parser/ner}/tika-config.xml    |    0
 .../tika-config-sentiment-opennlp-cat.xml          |    0
 .../sentiment/tika-config-sentiment-opennlp.xml    |    0
 .../resources/test-documents/testJournalParser.pdf |  Bin
 .../src/test/resources/test-documents/testTEI.xml  |    0
 .../tika-parsers-ml/tika-transcribe-aws/pom.xml    |  192 +++
 .../parser/transcribe/aws/AmazonTranscribe.java    |  398 +++++
 .../transcribe/aws/AmazonTranscribeTest.java       |  310 ++++
 .../test-documents/ShortAudioSampleFrench.mp3      |  Bin 0 -> 25861 bytes
 .../test-documents/de-DE_(We_Are_At_School_x2).mp3 |  Bin 0 -> 38547 bytes
 .../en-AU_(A_Little_Bottle_Of_Water).mp3           |  Bin 0 -> 33365 bytes
 .../en-GB_(A_Little_Bottle_Of_Water).mp3           |  Bin 0 -> 35872 bytes
 .../en-US_(A_Little_Bottle_Of_Water).mp3           |  Bin 0 -> 29603 bytes
 .../test/resources/test-documents/en-US_(Hi).mp4   |  Bin 0 -> 21739 bytes
 .../it-IT_(We_Are_Having_Class_x2).mp3             |  Bin 0 -> 42219 bytes
 .../test-documents/ja-JP_(We_Are_At_School).mp3    |  Bin 0 -> 21699 bytes
 .../test-documents/ko-KR_(Annyeonghaseyo).mp4      |  Bin 0 -> 144151 bytes
 .../ko-KR_(We_Are_Having_Class_x2).mp3             |  Bin 0 -> 66843 bytes
 .../test-documents/pt-BR_(We_Are_At_School).mp3    |  Bin 0 -> 29043 bytes
 .../test/resources/tika-config-aws-transcribe.xml  |   29 +
 tika-parsers/tika-parsers-standard/pom.xml         |   86 +
 .../tika-parsers-standard-modules/pom.xml          |  122 ++
 .../tika-parser-apple-module/pom.xml               |   65 +
 .../apache/tika/detect/apple/BPListDetector.java   |    0
 .../apache/tika/detect/apple/IWorkDetector.java    |    0
 .../tika/parser/apple/AppleSingleFileParser.java   |  192 +++
 .../org/apache/tika/parser/apple/PListParser.java  |    0
 .../tika/parser/iwork/AutoPageNumberUtils.java     |    0
 .../tika/parser/iwork/IWorkPackageParser.java      |  217 +++
 .../tika/parser/iwork/KeynoteContentHandler.java   |    0
 .../tika/parser/iwork/NumbersContentHandler.java   |  234 +++
 .../tika/parser/iwork/PagesContentHandler.java     |  474 ++++++
 .../parser/iwork/iwana/IWork13PackageParser.java   |  161 ++
 .../parser/iwork/iwana/IWork18PackageParser.java   |  152 ++
 .../services/org.apache.tika.detect.Detector       |    0
 ...org.apache.tika.detect.zip.ZipContainerDetector |    0
 .../services/org.apache.tika.parser.Parser         |    0
 .../apache/tika/parser/apple/PListParserTest.java  |    0
 .../tika/parser/iwork/AutoPageNumberUtilsTest.java |    0
 .../apache/tika/parser/iwork/IWorkParserTest.java  |    0
 .../tika/parser/iwork/iwana/IWork13ParserTest.java |    0
 .../resources/test-documents/tableHeaders.numbers  |  Bin
 .../resources/test-documents/tableNames.numbers    |  Bin
 .../test-documents/testAppleSingleFile.pdf         |  Bin
 .../resources/test-documents/testBPList.bplist     |  Bin
 .../resources/test-documents/testBulletPoints.key  |  Bin
 .../test/resources/test-documents/testKeynote.key  |  Bin
 .../resources/test-documents/testKeynote2013.key   |  Bin
 .../resources/test-documents/testKeynote2018.key   |  Bin
 .../test-documents/testMasterSlideTable.key        |  Bin
 .../resources/test-documents/testNumbers.numbers   |  Bin
 .../test-documents/testNumbers2013.numbers         |  Bin
 .../test-documents/testNumbersCharts.numbers       |  Bin
 .../test/resources/test-documents/testPages.pages  |  Bin
 .../resources/test-documents/testPages2013.pages   |  Bin
 .../test-documents/testPagesComments.pages         |  Bin
 .../testPagesHeadersFootersAlphaLower.pages        |  Bin
 .../testPagesHeadersFootersAlphaUpper.pages        |  Bin
 .../testPagesHeadersFootersFootnotes.pages         |  Bin
 .../testPagesHeadersFootersRomanLower.pages        |  Bin
 .../testPagesHeadersFootersRomanUpper.pages        |  Bin
 .../resources/test-documents/testPagesLayout.pages |  Bin
 .../test-documents/testPagesPwdProtected.pages     |  Bin
 .../test/resources/test-documents/testTables.key   |  Bin
 .../resources/test-documents/testTextBoxes.key     |  Bin
 .../test-documents/testWEBARCHIVE.webarchive       |    0
 .../tika-parser-audiovideo-module/pom.xml          |   61 +
 .../org/apache/tika/parser/audio/AudioParser.java  |  154 ++
 .../org/apache/tika/parser/audio/MidiParser.java   |  121 ++
 .../org/apache/tika/parser/mp3/AudioFrame.java     |    0
 .../tika/parser/mp3/CompositeTagHandler.java       |    0
 .../java/org/apache/tika/parser/mp3/ID3Tags.java   |    0
 .../org/apache/tika/parser/mp3/ID3v1Handler.java   |  180 ++
 .../org/apache/tika/parser/mp3/ID3v22Handler.java  |  169 ++
 .../org/apache/tika/parser/mp3/ID3v23Handler.java  |  151 ++
 .../org/apache/tika/parser/mp3/ID3v24Handler.java  |  157 ++
 .../org/apache/tika/parser/mp3/ID3v2Frame.java     |  432 +++++
 .../org/apache/tika/parser/mp3/LyricsHandler.java  |    0
 .../java/org/apache/tika/parser/mp3/MP3Frame.java  |    0
 .../java/org/apache/tika/parser/mp3/Mp3Parser.java |  267 +++
 .../org/apache/tika/parser/mp3/MpegStream.java     |    0
 .../apache/tika/parser/mp4/ISO6709Extractor.java   |    0
 .../java/org/apache/tika/parser/mp4/MP4Parser.java |    0
 .../org/apache/tika/parser/video/FLVParser.java    |  265 +++
 .../services/org.apache.tika.parser.Parser         |    0
 .../apache/tika/parser/audio/AudioParserTest.java  |    0
 .../apache/tika/parser/audio/MidiParserTest.java   |    0
 .../org/apache/tika/parser/mp3/Mp3ParserTest.java  |  363 ++++
 .../org/apache/tika/parser/mp3/MpegStreamTest.java |    0
 .../org/apache/tika/parser/mp4/MP4ParserTest.java  |    0
 .../apache/tika/parser/video/FLVParserTest.java    |    0
 .../src/test/resources/test-documents/test2.mp3    |  Bin
 .../src/test/resources/test-documents/testAIFF.aif |  Bin
 .../src/test/resources/test-documents/testAU.au    |  Bin
 .../src/test/resources/test-documents/testFLV.flv  |  Bin
 .../src/test/resources/test-documents/testMID.mid  |  Bin
 .../test/resources/test-documents/testMP3i18n.mp3  |  Bin
 .../test-documents/testMP3i18n_truncated.mp3       |  Bin
 .../test/resources/test-documents/testMP3id3v1.mp3 |  Bin
 .../resources/test-documents/testMP3id3v1_v2.mp3   |  Bin
 .../test/resources/test-documents/testMP3id3v2.mp3 |  Bin
 .../resources/test-documents/testMP3id3v24.mp3     |  Bin
 .../resources/test-documents/testMP3lyrics.mp3     |  Bin
 .../test/resources/test-documents/testMP3noid3.mp3 |  Bin
 .../resources/test-documents/testMP3truncated.mp3  |  Bin
 .../src/test/resources/test-documents/testMP4.m4a  |  Bin
 .../resources/test-documents/testMP4_truncated.m4a |  Bin
 .../resources/test-documents/testNakedUTF16BOM.mp3 |  Bin
 .../src/test/resources/test-documents/testWAV.wav  |  Bin
 .../tika-parser-cad-module/pom.xml                 |   61 +
 .../java/org/apache/tika/parser/dwg/DWGParser.java |  346 ++++
 .../java/org/apache/tika/parser/prt/PRTParser.java |    0
 .../services/org.apache.tika.parser.Parser         |    0
 .../org/apache/tika/parser/dwg/DWGParserTest.java  |    0
 .../org/apache/tika/parser/prt/PRTParserTest.java  |    0
 .../test/resources/test-documents/testCADKEY.prt   |  Bin
 .../test/resources/test-documents/testCADKEY2.prt  |  Bin
 .../test/resources/test-documents/testDWG2000.dwg  |  Bin
 .../test/resources/test-documents/testDWG2004.dwg  |  Bin
 .../test-documents/testDWG2004_no_header.dwg       |  Bin
 .../test/resources/test-documents/testDWG2007.dwg  |  Bin
 .../test/resources/test-documents/testDWG2010.dwg  |  Bin
 .../test-documents/testDWG2010_custom_props.dwg    |  Bin
 .../resources/test-documents/testDWGmech2004.dwg   |  Bin
 .../resources/test-documents/testDWGmech2004DX.dwg |  Bin
 .../resources/test-documents/testDWGmech2005.dwg   |  Bin
 .../resources/test-documents/testDWGmech2006.dwg   |  Bin
 .../resources/test-documents/testDWGmech2007.dwg   |  Bin
 .../resources/test-documents/testDWGmech2008.dwg   |  Bin
 .../resources/test-documents/testDWGmech2009.dwg   |  Bin
 .../resources/test-documents/testDWGmech2010.dwg   |  Bin
 .../resources/test-documents/testDWGmech2011.dwg   |  Bin
 .../test/resources/test-documents/testDWGmech6.dwg |  Bin
 .../tika-parser-code-module/pom.xml                |   99 ++
 .../org/apache/tika/parser/asm/ClassParser.java    |    0
 .../apache/tika/parser/asm/XHTMLClassVisitor.java  |  315 ++++
 .../apache/tika/parser/code/SourceCodeParser.java  |  149 ++
 .../tika/parser/executable/ExecutableParser.java   |  407 +++++
 .../java/org/apache/tika/parser/mat/MatParser.java |    0
 .../org/apache/tika/parser/sas/SAS7BDATParser.java |    0
 .../services/org.apache.tika.parser.Parser         |    0
 .../apache/tika/parser/asm/ClassParserTest.java    |    0
 .../tika/parser/code/SourceCodeParserTest.java     |  131 ++
 .../parser/executable/ExecutableParserTest.java    |    0
 .../org/apache/tika/parser/mat/MatParserTest.java  |    0
 .../apache/tika/parser/sas/SAS7BDATParserTest.java |    0
 .../test-documents/AppleSingleFileParser.class     |  Bin
 .../test-documents/AutoDetectParser.class          |  Bin
 .../breidamerkurjokull_radar_profiles_2009.mat     |  Bin
 .../resources/test-documents/test-columnar.sas.xml |    0
 .../test-documents/test-columnar.sas7bdat          |  Bin
 .../src/test/resources/test-documents/testC.c      |    0
 .../src/test/resources/test-documents/testCPP.cpp  |    0
 .../resources/test-documents/testGROOVY.groovy     |    0
 .../test/resources/test-documents/testJAVA.java    |    0
 .../src/test/resources/test-documents/testJS.js    |    0
 .../test/resources/test-documents/testJS_HTML.js   |    0
 .../resources/test-documents/testLinux-arm-32le    |  Bin
 .../resources/test-documents/testLinux-mips-32be   |  Bin
 .../resources/test-documents/testLinux-mips-32le   |  Bin
 .../resources/test-documents/testLinux-ppc-32be    |  Bin
 .../test/resources/test-documents/testLinux-x86-32 |  Bin
 .../test/resources/test-documents/testLinux-x86-64 |  Bin
 .../src/test/resources/test-documents/testMATLAB.m |    0
 .../resources/test-documents/testMATLAB_barcast.m  |    0
 .../resources/test-documents/testMATLAB_wtsgaus.m  |    0
 .../src/test/resources/test-documents/testSAS.sas  |    0
 .../test/resources/test-documents/testSAS.sas7bdat |  Bin
 .../src/test/resources/test-documents/testSAS.sd2  |  Bin
 .../src/test/resources/test-documents/testSAS.xpt  |  Bin
 .../src/test/resources/test-documents/testSAS2.sas |    0
 .../test-documents/testWindows-x86-32.exe          |  Bin
 .../resources/test-documents/test_mat_text.mat     |  Bin
 .../tika-parser-crypto-module/pom.xml              |   65 +
 .../org/apache/tika/parser/crypto/Pkcs7Parser.java |   89 +
 .../org/apache/tika/parser/crypto/TSDParser.java   |  394 +++++
 .../services/org.apache.tika.parser.Parser         |    0
 .../apache/tika/parser/crypto/Pkcs7ParserTest.java |    0
 .../apache/tika/parser/crypto/TSDParserTest.java   |    0
 .../test/resources/test-documents/MANIFEST.XML.TSD |  Bin
 .../test/resources/test-documents/Test1.txt.tsd    |  Bin
 .../test/resources/test-documents/Test2.txt.tsd    |  Bin
 .../test/resources/test-documents/Test3.docx.tsd   |  Bin
 .../test/resources/test-documents/Test4.pdf.tsd    |  Bin
 .../test/resources/test-documents/Test5.PNG.tsd    |  Bin
 .../src/test/resources/test-documents/testCERT.der |  Bin
 .../src/test/resources/test-documents/testCERT.pem |    0
 .../test/resources/test-documents/testDSAKEY.der   |  Bin
 .../test/resources/test-documents/testDSAKEY.pem   |    0
 .../resources/test-documents/testDSAPARAMS.pem     |    0
 .../test/resources/test-documents/testDetached.p7s |  Bin
 .../test/resources/test-documents/testECKEY.der    |  Bin
 .../test/resources/test-documents/testECKEY.pem    |    0
 .../test/resources/test-documents/testECPARAMS.pem |    0
 .../test/resources/test-documents/testRSAKEY.der   |  Bin
 .../test/resources/test-documents/testRSAKEY.pem   |    0
 .../test-documents/testTSD_broken_pdf.tsd          |  Bin
 .../tika-parser-digest-commons/pom.xml             |   50 +
 .../parser/digestutils/BouncyCastleDigester.java   |    0
 .../tika/parser/digestutils/CommonsDigester.java   |    0
 .../tika-parser-font-module/pom.xml                |   62 +
 .../tika/parser/font/AdobeFontMetricParser.java    |    0
 .../apache/tika/parser/font/TrueTypeParser.java    |    0
 .../services/org.apache.tika.parser.Parser         |    0
 .../apache/tika/parser/font/FontParsersTest.java   |    0
 .../src/test/resources/test-documents/testAFM.afm  |    0
 .../resources/test-documents/testTrueType3.ttf     |  Bin
 .../tika-parser-html-commons/pom.xml               |   59 +
 .../sax/boilerpipe/BoilerpipeContentHandler.java   |  371 +++++
 .../tika-parser-html-module/pom.xml                |   80 +
 .../org/apache/tika/parser/html/DataURIScheme.java |    0
 .../parser/html/DataURISchemeParseException.java   |    0
 .../apache/tika/parser/html/DataURISchemeUtil.java |    0
 .../apache/tika/parser/html/DefaultHtmlMapper.java |    0
 .../tika/parser/html/HtmlEncodingDetector.java     |    0
 .../org/apache/tika/parser/html/HtmlHandler.java   |  434 +++++
 .../org/apache/tika/parser/html/HtmlMapper.java    |    0
 .../org/apache/tika/parser/html/HtmlParser.java    |    0
 .../tika/parser/html/IdentityHtmlMapper.java       |    0
 .../tika/parser/html/XHTMLDowngradeHandler.java    |    0
 .../html/charsetdetector/CharsetAliases.java       |    0
 .../charsetdetector/CharsetDetectionResult.java    |    0
 .../parser/html/charsetdetector/MetaProcessor.java |    0
 .../parser/html/charsetdetector/PreScanner.java    |    0
 .../StandardHtmlEncodingDetector.java              |    0
 .../charsets/ReplacementCharset.java               |    0
 .../charsets/XUserDefinedCharset.java              |    0
 .../org.apache.tika.detect.EncodingDetector        |    0
 .../services/org.apache.tika.parser.Parser         |    0
 .../html/StandardCharsets_unsupported_by_IANA.txt  |    0
 .../tika/parser/html/DataURISchemeParserTest.java  |    0
 .../tika/parser/html/HtmlEncodingDetectorTest.java |    0
 .../apache/tika/parser/html/HtmlParserTest.java    | 1376 +++++++++++++++
 .../html/StandardHtmlEncodingDetectorTest.java     |    0
 .../org/apache/tika/parser/html/tika-config.xml    |    0
 .../resources/test-documents/big-preamble.html     |    0
 .../test-documents/boilerplate-whitespace.html     |    0
 .../test/resources/test-documents/boilerplate.html |    0
 .../testBoilerplateMissingSpace.html               |    0
 .../test/resources/test-documents/testHTML.html    |    0
 .../test-documents/testHTMLBadScript.html          |    0
 .../test-documents/testHTMLGoodScript.html         |    0
 .../testHTMLNoisyMetaEncoding_1.html               |    0
 .../testHTMLNoisyMetaEncoding_2.html               |    0
 .../testHTMLNoisyMetaEncoding_3.html               |    0
 .../testHTMLNoisyMetaEncoding_4.html               |    0
 .../test-documents/testHTML_charset_utf16le.html   |  Bin
 .../test-documents/testHTML_charset_utf8.html      |    0
 .../testHTML_embedded_data_uri_js.html             |    0
 .../test-documents/testHTML_embedded_img.html      |    0
 .../testHTML_embedded_img_in_js.html               |    0
 .../resources/test-documents/testHTML_head.html    |    0
 .../resources/test-documents/testHTML_utf8.html    |    0
 .../test-documents/testUserDefinedCharset.mhtml    |    0
 .../test/resources/test-documents/testXHTML.html   |    0
 .../src/test/resources/test-documents/tika434.html |    0
 .../tika-parser-image-module/pom.xml               |   99 ++
 .../tika/parser/image/AbstractImageParser.java     |    0
 .../org/apache/tika/parser/image/BPGParser.java    |  172 ++
 .../org/apache/tika/parser/image/HeifParser.java   |    0
 .../org/apache/tika/parser/image/ICNSParser.java   |  142 ++
 .../org/apache/tika/parser/image/ICNSType.java     |    0
 .../tika/parser/image/ImageMetadataExtractor.java  |  634 +++++++
 .../org/apache/tika/parser/image/ImageParser.java  |    0
 .../org/apache/tika/parser/image/JpegParser.java   |    0
 .../apache/tika/parser/image/MetadataFields.java   |   89 +
 .../org/apache/tika/parser/image/PSDParser.java    |  268 +++
 .../org/apache/tika/parser/image/TiffParser.java   |    0
 .../org/apache/tika/parser/image/WebPParser.java   |    0
 .../services/org.apache.tika.parser.Parser         |    0
 .../apache/tika/parser/image/HeifParserTest.java   |    0
 .../apache/tika/parser/image/ICNSParserTest.java   |    0
 .../parser/image/ImageMetadataExtractorTest.java   |    0
 .../apache/tika/parser/image/ImageParserTest.java  |    0
 .../apache/tika/parser/image/JpegParserTest.java   |    0
 .../apache/tika/parser/image/PSDParserTest.java    |    0
 .../apache/tika/parser/image/WebPParserTest.java   |    0
 .../tika/parser/image/tika-config-TIKA-3243.xml    |    0
 .../test/resources/test-documents/IMG_1034.heic    |  Bin
 .../test/resources/test-documents/testAVIF.avif    |  Bin
 .../src/test/resources/test-documents/testBMP.bmp  |  Bin
 .../src/test/resources/test-documents/testBPG.bpg  |  Bin
 .../test/resources/test-documents/testBPG_GEO.bpg  |  Bin
 .../resources/test-documents/testBPG_commented.bpg |  Bin
 .../testBPG_commented_xnviewmp026.bpg              |  Bin
 .../src/test/resources/test-documents/testGIF.gif  |  Bin
 .../test/resources/test-documents/testHEIF.heic    |  Bin
 .../test/resources/test-documents/testICNS.icns    |  Bin
 .../resources/test-documents/testICNS_basic.icns   |  Bin
 .../test/resources/test-documents/testJBIG2.jb2    |  Bin
 .../src/test/resources/test-documents/testJPEG.jp2 |  Bin
 .../src/test/resources/test-documents/testJPEG.jpg |  Bin
 .../resources/test-documents/testJPEG_EXIF.jpg     |  Bin
 .../test-documents/testJPEG_EXIF_emptyDateTime.jpg |  Bin
 .../test/resources/test-documents/testJPEG_GEO.jpg |  Bin
 .../resources/test-documents/testJPEG_GEO_2.jpg    |  Bin
 .../test-documents/testJPEG_oddTagComponent.jpg    |  Bin
 .../src/test/resources/test-documents/testPNG.png  |  Bin
 .../src/test/resources/test-documents/testPSD.psd  |  Bin
 .../src/test/resources/test-documents/testPSD2.psd |  Bin
 .../test/resources/test-documents/testPSD_xmp.psd  |  Bin
 .../src/test/resources/test-documents/testTIFF.tif |  Bin
 .../test/resources/test-documents/testWEBP.webp    |  Bin
 .../test-documents/testWebp_Alpha_Lossless.webp    |  Bin
 .../test-documents/testWebp_Alpha_Lossy.webp       |  Bin
 .../tika-parser-jdbc-commons/pom.xml               |   30 +
 .../apache/tika/parser/jdbc/AbstractDBParser.java  |    0
 .../apache/tika/parser/jdbc/JDBCTableReader.java   |  328 ++++
 .../tika-parser-mail-commons/pom.xml               |   45 +
 .../tika/parser/mailcommons/MailDateParser.java    |    0
 .../apache/tika/parser/mailcommons/MailUtil.java   |    0
 .../tika/parser/mailcommons/MailUtilTest.java      |    0
 .../tika-parser-mail-module/pom.xml                |   89 +
 .../tika/parser/mail/MailContentHandler.java       |    0
 .../org/apache/tika/parser/mail/RFC822Parser.java  |    0
 .../org/apache/tika/parser/mbox/MboxParser.java    |  218 +++
 .../services/org.apache.tika.parser.Parser         |    0
 .../apache/tika/parser/mail/RFC822ParserTest.java  |    0
 .../apache/tika/parser/mbox/MboxParserTest.java    |    0
 .../mail/tika-config-extract-all-alternatives.xml  |    0
 .../src/test/resources/test-documents/complex.mbox |    0
 .../src/test/resources/test-documents/headers.mbox |    0
 .../test/resources/test-documents/multiline.mbox   |    0
 .../src/test/resources/test-documents/quoted.mbox  |    0
 .../src/test/resources/test-documents/simple.mbox  |    0
 .../test/resources/test-documents/single_mail.mbox |    0
 .../test-documents/testEmailWithPNGAtt.eml         |    0
 .../resources/test-documents/testGroupWiseEml.eml  |    0
 .../resources/test-documents/testMBOX_complex.mbox |    0
 .../test-documents/testMBOX_lengthy_x-headers.mbox |    0
 .../src/test/resources/test-documents/testRFC822   |    0
 .../resources/test-documents/testRFC822-CC-BCC     |    0
 .../test/resources/test-documents/testRFC822-big   |    0
 .../test-documents/testRFC822-limitedheaders       |    0
 .../test-documents/testRFC822-mixed-simple         |    0
 .../testRFC822-mixed-with-pdf-inline               |    0
 .../resources/test-documents/testRFC822-multipart  |    0
 .../resources/test-documents/testRFC822-txt-body   |    0
 .../resources/test-documents/testRFC822_base64     |    0
 .../resources/test-documents/testRFC822_date_utf8  |    0
 .../resources/test-documents/testRFC822_dkim.eml   |    0
 .../test/resources/test-documents/testRFC822_eml   |    0
 .../test-documents/testRFC822_encrypted_zip        |    0
 .../test-documents/testRFC822_i18nheaders          |    0
 .../resources/test-documents/testRFC822_normal_zip |    0
 .../resources/test-documents/testRFC822_oddfrom    |    0
 .../resources/test-documents/testRFC822_quoted     |    0
 .../testRFC822_simple_inline_body.txt              |    0
 .../resources/test-documents/testRFC822_x-.eml     |    0
 .../tika-parser-microsoft-module/pom.xml           |  190 +++
 .../detect/microsoft/POIFSContainerDetector.java   |  485 ++++++
 .../detect/microsoft/ooxml/OPCPackageDetector.java |    0
 .../microsoft/MSEmbeddedStreamTranslator.java      |  116 ++
 .../tika/parser/microsoft/AbstractListManager.java |  274 +++
 .../parser/microsoft/AbstractOfficeParser.java     |    0
 .../parser/microsoft/AbstractPOIFSExtractor.java   |  281 ++++
 .../org/apache/tika/parser/microsoft/Cell.java     |    0
 .../tika/parser/microsoft/CellDecorator.java       |    0
 .../apache/tika/parser/microsoft/EMFParser.java    |    0
 .../tika/parser/microsoft/ExcelExtractor.java      |  729 ++++++++
 .../tika/parser/microsoft/FormattingUtils.java     |    0
 .../tika/parser/microsoft/HSLFExtractor.java       |  558 +++++++
 .../tika/parser/microsoft/JackcessExtractor.java   |  420 +++++
 .../tika/parser/microsoft/JackcessParser.java      |    0
 .../apache/tika/parser/microsoft/LinkedCell.java   |    0
 .../apache/tika/parser/microsoft/ListManager.java  |  202 +++
 .../tika/parser/microsoft/MSOwnerFileParser.java   |    0
 .../apache/tika/parser/microsoft/NumberCell.java   |    0
 .../apache/tika/parser/microsoft/OfficeParser.java |  338 ++++
 .../tika/parser/microsoft/OfficeParserConfig.java  |    0
 .../tika/parser/microsoft/OldExcelParser.java      |   91 +
 .../tika/parser/microsoft/OutlookExtractor.java    |  729 ++++++++
 .../tika/parser/microsoft/SummaryExtractor.java    |  246 +++
 .../apache/tika/parser/microsoft/TNEFParser.java   |  123 ++
 .../org/apache/tika/parser/microsoft/TextCell.java |    0
 .../parser/microsoft/TikaExcelDataFormatter.java   |    0
 .../parser/microsoft/TikaExcelGeneralFormat.java   |    0
 .../apache/tika/parser/microsoft/WMFParser.java    |    0
 .../tika/parser/microsoft/WordExtractor.java       |  723 ++++++++
 .../tika/parser/microsoft/chm/ChmAccessor.java     |    0
 .../tika/parser/microsoft/chm/ChmAssert.java       |    0
 .../tika/parser/microsoft/chm/ChmBlockInfo.java    |  194 +++
 .../tika/parser/microsoft/chm/ChmCommons.java      |  357 ++++
 .../tika/parser/microsoft/chm/ChmConstants.java    |    0
 .../microsoft/chm/ChmDirectoryListingSet.java      |  399 +++++
 .../tika/parser/microsoft/chm/ChmExtractor.java    |  392 +++++
 .../tika/parser/microsoft/chm/ChmItsfHeader.java   |  500 ++++++
 .../tika/parser/microsoft/chm/ChmItspHeader.java   |  556 +++++++
 .../tika/parser/microsoft/chm/ChmLzxBlock.java     |    0
 .../tika/parser/microsoft/chm/ChmLzxState.java     |  341 ++++
 .../parser/microsoft/chm/ChmLzxcControlData.java   |  315 ++++
 .../parser/microsoft/chm/ChmLzxcResetTable.java    |  325 ++++
 .../tika/parser/microsoft/chm/ChmParser.java       |  109 ++
 .../parser/microsoft/chm/ChmParsingException.java  |    0
 .../tika/parser/microsoft/chm/ChmPmgiHeader.java   |  171 ++
 .../tika/parser/microsoft/chm/ChmPmglHeader.java   |  198 +++
 .../tika/parser/microsoft/chm/ChmSection.java      |    0
 .../tika/parser/microsoft/chm/ChmWrapper.java      |    0
 .../microsoft/chm/DirectoryListingEntry.java       |  141 ++
 .../microsoft/onenote/CheckedFileNodePushBack.java |    0
 .../tika/parser/microsoft/onenote/CompactID.java   |    0
 .../tika/parser/microsoft/onenote/Error.java       |    0
 .../parser/microsoft/onenote/ExtendedGUID.java     |   86 +
 .../microsoft/onenote/FileChunkReference.java      |    0
 .../microsoft/onenote/FileDataStoreObject.java     |    0
 .../onenote/FileDataStoreObjectReference.java      |    0
 .../tika/parser/microsoft/onenote/FileNode.java    |    0
 .../parser/microsoft/onenote/FileNodeList.java     |    0
 .../microsoft/onenote/FileNodeListHeader.java      |    0
 .../tika/parser/microsoft/onenote/FileNodePtr.java |    0
 .../microsoft/onenote/FileNodePtrBackPush.java     |    0
 .../parser/microsoft/onenote/FileNodeUnion.java    |    0
 .../microsoft/onenote/FndStructureConstants.java   |    0
 .../apache/tika/parser/microsoft/onenote/GUID.java |    0
 .../microsoft/onenote/GlobalIdTableEntry2FNDX.java |    0
 .../microsoft/onenote/GlobalIdTableEntry3FNDX.java |    0
 .../microsoft/onenote/GlobalIdTableEntryFNDX.java  |    0
 .../microsoft/onenote/GlobalIdTableStartFNDX.java  |    0
 .../tika/parser/microsoft/onenote/IndentUtil.java  |   27 +
 .../tika/parser/microsoft/onenote/Int24.java       |    0
 .../apache/tika/parser/microsoft/onenote/JCID.java |    0
 .../microsoft/onenote/JCIDPropertySetTypeEnum.java |    0
 .../onenote/ObjectDeclarationWithRefCount.java     |    0
 .../onenote/ObjectDeclarationWithRefCountBody.java |    0
 .../onenote/ObjectInfoDependencyOverrideData.java  |    0
 .../onenote/ObjectInfoDependencyOverrides.java     |    0
 .../onenote/ObjectRevisionWithRefCountFNDX.java    |    0
 .../onenote/ObjectSpaceObjectPropSet.java          |    0
 ...ctSpaceObjectStreamOfOIDsOSIDsOrContextIDs.java |    0
 .../microsoft/onenote/ObjectStreamCounters.java    |    0
 .../onenote/OneNoteDirectFileResource.java         |    0
 .../parser/microsoft/onenote/OneNoteDocument.java  |    0
 .../parser/microsoft/onenote/OneNoteHeader.java    |    0
 .../onenote/OneNoteLegacyDumpStrings.java          |    0
 .../parser/microsoft/onenote/OneNoteParser.java    |  210 +++
 .../microsoft/onenote/OneNotePropertyEnum.java     |    0
 .../microsoft/onenote/OneNotePropertyId.java       |    0
 .../tika/parser/microsoft/onenote/OneNotePtr.java  | 1222 ++++++++++++++
 .../microsoft/onenote/OneNoteTreeWalker.java       |    0
 .../onenote/OneNoteTreeWalkerOptions.java          |    0
 .../parser/microsoft/onenote/PropertyIDType.java   |    0
 .../tika/parser/microsoft/onenote/PropertySet.java |    0
 .../parser/microsoft/onenote/PropertyValue.java    |    0
 .../tika/parser/microsoft/onenote/Revision.java    |    0
 .../parser/microsoft/onenote/RevisionManifest.java |    0
 .../onenote/RevisionManifestListStart.java         |    0
 .../microsoft/onenote/RevisionRoleDeclaration.java |    0
 .../microsoft/onenote/RootObjectReference.java     |    0
 .../microsoft/onenote/RootObjectReferenceBase.java |    0
 .../microsoft/ooxml/AbstractOOXMLExtractor.java    |  540 ++++++
 .../parser/microsoft/ooxml/MetadataExtractor.java  |    0
 .../parser/microsoft/ooxml/OOXMLExtractor.java     |    0
 .../microsoft/ooxml/OOXMLExtractorFactory.java     |  321 ++++
 .../tika/parser/microsoft/ooxml/OOXMLParser.java   |    0
 .../microsoft/ooxml/OOXMLTikaBodyPartHandler.java  |  391 +++++
 .../ooxml/OOXMLWordAndPowerPointTextHandler.java   |  574 +++++++
 .../ooxml/POIXMLTextExtractorDecorator.java        |   51 +
 .../microsoft/ooxml/ParagraphProperties.java       |    0
 .../tika/parser/microsoft/ooxml/RunProperties.java |    0
 .../ooxml/SXSLFPowerPointExtractorDecorator.java   |  486 ++++++
 .../ooxml/SXWPFWordExtractorDecorator.java         |    0
 .../ooxml/XSLFPowerPointExtractorDecorator.java    |  378 +++++
 .../ooxml/XSSFBExcelExtractorDecorator.java        |  161 ++
 .../ooxml/XSSFExcelExtractorDecorator.java         |  611 +++++++
 .../parser/microsoft/ooxml/XWPFListManager.java    |    0
 .../ooxml/XWPFWordExtractorDecorator.java          |  491 ++++++
 .../microsoft/ooxml/xps/XPSExtractorDecorator.java |    0
 .../microsoft/ooxml/xps/XPSPageContentHandler.java |  372 +++++
 .../microsoft/ooxml/xps/XPSTextExtractor.java      |    0
 .../xslf/XSLFEventBasedPowerPointExtractor.java    |  217 +++
 .../ooxml/xwpf/XWPFEventBasedWordExtractor.java    |  384 +++++
 .../microsoft/ooxml/xwpf/XWPFNumberingShim.java    |    0
 .../microsoft/ooxml/xwpf/XWPFStylesShim.java       |    0
 .../ooxml/xwpf/ml2006/AbstractPartHandler.java     |    0
 .../ooxml/xwpf/ml2006/BinaryDataHandler.java       |    0
 .../ooxml/xwpf/ml2006/CorePropertiesHandler.java   |    0
 .../xwpf/ml2006/ExtendedPropertiesHandler.java     |    0
 .../microsoft/ooxml/xwpf/ml2006/PartHandler.java   |    0
 .../microsoft/ooxml/xwpf/ml2006/Relationship.java  |    0
 .../ooxml/xwpf/ml2006/RelationshipsHandler.java    |    0
 .../ooxml/xwpf/ml2006/RelationshipsManager.java    |    0
 .../ooxml/xwpf/ml2006/Word2006MLDocHandler.java    |    0
 .../ooxml/xwpf/ml2006/Word2006MLParser.java        |    0
 .../ml2006/WordAndPowerPointTextPartHandler.java   |   67 +
 .../parser/microsoft/pst/OutlookPSTParser.java     |    0
 .../tika/parser/microsoft/rtf/GroupState.java      |    0
 .../tika/parser/microsoft/rtf/ListDescriptor.java  |    0
 .../parser/microsoft/rtf/RTFEmbObjHandler.java     |    0
 .../parser/microsoft/rtf/RTFObjDataParser.java     |    0
 .../tika/parser/microsoft/rtf/RTFParser.java       |    0
 .../tika/parser/microsoft/rtf/TextExtractor.java   | 1539 +++++++++++++++++
 .../microsoft/xml/AbstractXML2003Parser.java       |  132 ++
 .../parser/microsoft/xml/HyperlinkHandler.java     |    0
 .../parser/microsoft/xml/SpreadsheetMLParser.java  |  170 ++
 .../tika/parser/microsoft/xml/WordMLParser.java    |  300 ++++
 .../services/org.apache.tika.detect.Detector       |    0
 ...org.apache.tika.detect.zip.ZipContainerDetector |    0
 ....apache.tika.extractor.EmbeddedStreamTranslator |    0
 .../services/org.apache.tika.parser.Parser         |    0
 .../AbstractPOIContainerExtractionTest.java        |    0
 .../tika/parser/microsoft/EMFParserTest.java       |    0
 .../tika/parser/microsoft/ExcelParserTest.java     |  570 +++++++
 .../tika/parser/microsoft/JackcessParserTest.java  |  166 ++
 .../parser/microsoft/MSOwnerFileParserTest.java    |    0
 .../tika/parser/microsoft/OfficeParserTest.java    |    0
 .../tika/parser/microsoft/OldExcelParserTest.java  |    0
 .../tika/parser/microsoft/OutlookParserTest.java   |    0
 .../microsoft/POIContainerExtractionTest.java      |    0
 .../parser/microsoft/PowerPointParserTest.java     |    0
 .../tika/parser/microsoft/ProjectParserTest.java   |    0
 .../tika/parser/microsoft/PublisherParserTest.java |    0
 .../parser/microsoft/SolidworksParserTest.java     |    0
 .../tika/parser/microsoft/TNEFParserTest.java      |    0
 .../tika/parser/microsoft/VisioParserTest.java     |    0
 .../tika/parser/microsoft/WMFParserTest.java       |    0
 .../tika/parser/microsoft/WordParserTest.java      |    0
 .../parser/microsoft/WriteProtectedParserTest.java |    0
 .../parser/microsoft/chm/TestChmBlockInfo.java     |    0
 .../parser/microsoft/chm/TestChmExtraction.java    |  238 +++
 .../parser/microsoft/chm/TestChmExtractor.java     |    0
 .../parser/microsoft/chm/TestChmItsfHeader.java    |    0
 .../parser/microsoft/chm/TestChmItspHeader.java    |    0
 .../tika/parser/microsoft/chm/TestChmLzxState.java |    0
 .../microsoft/chm/TestChmLzxcControlData.java      |    0
 .../microsoft/chm/TestChmLzxcResetTable.java       |    0
 .../microsoft/chm/TestDirectoryListingEntry.java   |    0
 .../tika/parser/microsoft/chm/TestParameters.java  |    0
 .../tika/parser/microsoft/chm/TestPmgiHeader.java  |    0
 .../tika/parser/microsoft/chm/TestPmglHeader.java  |    0
 .../microsoft/onenote/OneNoteParserTest.java       |    0
 .../ooxml/OOXMLContainerExtractionTest.java        |    0
 .../parser/microsoft/ooxml/OOXMLParserTest.java    | 1743 ++++++++++++++++++++
 .../parser/microsoft/ooxml/SXSLFExtractorTest.java |  608 +++++++
 .../parser/microsoft/ooxml/SXWPFExtractorTest.java |  853 ++++++++++
 .../parser/microsoft/ooxml/TruncatedOOXMLTest.java |    0
 .../parser/microsoft/ooxml/xps/XPSParserTest.java  |    0
 .../ooxml/xwpf/ml2006/Word2006MLParserTest.java    |  191 +++
 .../parser/microsoft/pst/OutlookPSTParserTest.java |  168 ++
 .../tika/parser/microsoft/rtf/RTFParserTest.java   |  496 ++++++
 .../parser/microsoft/xml/XML2003ParserTest.java    |   78 +
 .../ooxml}/tika-config-custom-date-override.xml    |    0
 .../microsoft/ooxml/tika-config-dom-macros.xml     |    0
 .../microsoft/ooxml/tika-config-sax-macros.xml     |    0
 .../microsoft/rtf/ignoreListMarkup-tika-config.xml |    0
 .../tika/parser/microsoft/rtf/tika-config.xml      |    0
 .../tika-config-custom-date-override.xml           |    0
 .../microsoft/tika-config-exclude-phonetic.xml     |    0
 .../tika-config-extract-all-alternatives-msg.xml   |    0
 .../tika/parser/microsoft/tika-config-macros.xml   |    0
 .../tika/parser/microsoft/tika-config-sax-docx.xml |    0
 .../src/test/resources/test-documents/Doc1_ole.doc |  Bin
 .../resources/test-documents/EmbeddedDocument.docx |  Bin
 .../resources/test-documents/EmbeddedOutlook.docx  |  Bin
 .../test/resources/test-documents/EmbeddedPDF.docx |  Bin
 .../test/resources/test-documents/NullHeader.docx  |  Bin
 .../test/resources/test-documents/chm/IMJPCL.CHM   |  Bin
 .../test/resources/test-documents/chm/IMJPCLE.CHM  |  Bin
 .../test/resources/test-documents/chm/IMTCEN.CHM   |  Bin
 .../test/resources/test-documents/chm/admin.chm    |  Bin
 .../test/resources/test-documents/chm/cmak_ops.CHM |  Bin
 .../test/resources/test-documents/chm/comexp.CHM   |  Bin
 .../test/resources/test-documents/chm/gpedit.CHM   |  Bin
 .../test/resources/test-documents/chm/tcpip.CHM    |  Bin
 .../resources/test-documents/chm/wmicontrol.CHM    |  Bin
 .../test/resources/test-documents/footnotes.docx   |  Bin
 .../test/resources/test-documents/headerPic.docx   |  Bin
 .../src/test/resources/test-documents/jxl.xls      |  Bin
 .../src/test/resources/test-documents/pictures.ppt |  Bin
 .../src/test/resources/test-documents/protect.xlsx |  Bin
 .../resources/test-documents/protectedFile.xlsx    |  Bin
 .../resources/test-documents/protectedSheets.xlsx  |  Bin
 .../resources/test-documents/test-columnar.xls     |  Bin
 .../resources/test-documents/test-columnar.xlsb    |  Bin
 .../resources/test-documents/test-columnar.xlsx    |  Bin
 .../test/resources/test-documents/test-outlook.msg |  Bin
 .../resources/test-documents/test-outlook2003.msg  |  Bin
 .../src/test/resources/test-documents/test.doc     |  Bin
 .../test/resources/test-documents/testACCESS.mdb   |  Bin
 .../resources/test-documents/testAccess2.accdb     |  Bin
 .../resources/test-documents/testAccess2_2000.mdb  |  Bin
 .../test-documents/testAccess2_2002-2003.mdb       |  Bin
 .../test-documents/testAccess2_encrypted.accdb     |  Bin
 .../resources/test-documents/testAccess_V1997.mdb  |  Bin
 .../test-documents/testBinControlWord.rtf          |    0
 .../src/test/resources/test-documents/testChm.chm  |  Bin
 .../src/test/resources/test-documents/testChm2.chm |  Bin
 .../src/test/resources/test-documents/testChm3.chm |  Bin
 .../test/resources/test-documents/testChm_oom.chm  |  Bin
 .../test/resources/test-documents/testComment.doc  |  Bin
 .../test/resources/test-documents/testComment.docx |  Bin
 .../test/resources/test-documents/testComment.ppt  |  Bin
 .../test/resources/test-documents/testComment.pptx |  Bin
 .../test/resources/test-documents/testComment.rtf  |    0
 .../test/resources/test-documents/testComment.xls  |  Bin
 .../test/resources/test-documents/testComment.xlsx |  Bin
 .../test-documents/testControlCharacters.doc       |  Bin
 .../test-documents/testDOCX_Thumbnail.docx         |  Bin
 .../test/resources/test-documents/testDOTM.dotm    |  Bin
 .../resources/test-documents/testDocumentLink.doc  |  Bin
 .../src/test/resources/test-documents/testEMF.emf  |  Bin
 .../test/resources/test-documents/testEMLX.emlx    |    0
 .../testEML_embedded_xhtml_and_img.eml             |    0
 .../resources/test-documents/testEXCEL-charts.xls  |  Bin
 .../resources/test-documents/testEXCEL-formats.xls |  Bin
 .../test-documents/testEXCEL-formats.xlsx          |  Bin
 .../resources/test-documents/testEXCEL.strict.xlsx |  Bin
 .../test/resources/test-documents/testEXCEL.xls    |  Bin
 .../test/resources/test-documents/testEXCEL.xlsb   |  Bin
 .../test/resources/test-documents/testEXCEL.xlsx   |  Bin
 .../resources/test-documents/testEXCEL2003.xml     |    0
 .../resources/test-documents/testEXCEL_1img.xls    |  Bin
 .../resources/test-documents/testEXCEL_1img.xlsx   |  Bin
 .../test/resources/test-documents/testEXCEL_4.xls  |  Bin
 .../test/resources/test-documents/testEXCEL_5.xls  |  Bin
 .../test/resources/test-documents/testEXCEL_95.xls |  Bin
 .../testEXCEL_WORKBOOK_in_capitals.xls             |  Bin
 .../test-documents/testEXCEL_big_numbers.xls       |  Bin
 .../test-documents/testEXCEL_big_numbers.xlsx      |  Bin
 .../resources/test-documents/testEXCEL_charts.xlsb |  Bin
 .../resources/test-documents/testEXCEL_charts.xlsx |  Bin
 .../test-documents/testEXCEL_custom_props.xls      |  Bin
 .../test-documents/testEXCEL_custom_props.xlsx     |  Bin
 .../test-documents/testEXCEL_dateFormats.xls       |  Bin
 .../test-documents/testEXCEL_dateFormats.xlsx      |  Bin
 .../test-documents/testEXCEL_diagramData.xlsb      |  Bin
 .../test-documents/testEXCEL_diagramData.xlsx      |  Bin
 .../test-documents/testEXCEL_embeddedPDF_mac.xls   |  Bin
 .../test-documents/testEXCEL_embeddedPDF_mac.xlsx  |  Bin
 .../testEXCEL_embeddedPDF_windows.xls              |  Bin
 .../testEXCEL_embeddedPDF_windows.xlsx             |  Bin
 .../resources/test-documents/testEXCEL_embeded.xls |  Bin
 .../test-documents/testEXCEL_embeded.xlsx          |  Bin
 .../test-documents/testEXCEL_headers_footers.xls   |  Bin
 .../test-documents/testEXCEL_headers_footers.xlsx  |  Bin
 .../test-documents/testEXCEL_hyperlinks.xls        |  Bin
 .../test-documents/testEXCEL_hyperlinks.xlsx       |  Bin
 .../testEXCEL_labels-govdocs-515858.xls            |  Bin
 .../resources/test-documents/testEXCEL_macro.xls   |  Bin
 .../resources/test-documents/testEXCEL_macro.xlsm  |  Bin
 .../testEXCEL_macro_enabled_template.xltm          |  Bin
 .../test-documents/testEXCEL_phonetic.xls          |  Bin
 .../test-documents/testEXCEL_phonetic.xlsx         |  Bin
 .../test-documents/testEXCEL_poi-61034.xlsx        |  Bin
 .../resources/test-documents/testEXCEL_poi.xlsx    |  Bin
 .../testEXCEL_protected_passtika.xls               |  Bin
 .../testEXCEL_protected_passtika.xlsx              |  Bin
 .../testEXCEL_protected_passtika_2.xlsx            |  Bin
 .../resources/test-documents/testEXCEL_signed.xlsx |  Bin
 .../test-documents/testEXCEL_template.xlt          |  Bin
 .../test-documents/testEXCEL_template.xltx         |  Bin
 .../resources/test-documents/testEXCEL_textbox.xls |  Bin
 .../test-documents/testEXCEL_textbox.xlsx          |  Bin
 .../test-documents/testEXCEL_various.xlsb          |  Bin
 .../test-documents/testExcel_embeddedPDF.xls       |  Bin
 .../test-documents/testExcel_embeddedPDF.xlsx      |  Bin
 .../resources/test-documents/testException1.doc    |  Bin
 .../resources/test-documents/testException2.doc    |  Bin
 .../test-documents/testFontAfterBufferedText.rtf   |    0
 .../test-documents/testMSChart-govdocs-428996.ppt  |  Bin
 .../test-documents/testMSChart-govdocs-428996.pptx |  Bin
 .../test-documents/testMSChart-govdocs-428996.xls  |  Bin
 .../test-documents/testMSChart-govdocs-428996.xlsx |  Bin
 .../testMSEquation-govdocs-863534.doc              |  Bin
 .../src/test/resources/test-documents/testMSG.msg  |  Bin
 .../test-documents/testMSG_Appointment.msg         |  Bin
 .../resources/test-documents/testMSG_Contact.msg   |  Bin
 .../test/resources/test-documents/testMSG_Post.msg |  Bin
 .../test-documents/testMSG_StickyNote.msg          |  Bin
 .../test/resources/test-documents/testMSG_Task.msg |  Bin
 .../resources/test-documents/testMSG_att_doc.msg   |  Bin
 .../resources/test-documents/testMSG_att_msg.msg   |  Bin
 .../resources/test-documents/testMSG_chinese.msg   |  Bin
 .../resources/test-documents/testMSG_forwarded.msg |  Bin
 .../test/resources/test-documents/testMSOwnerFile  |  Bin
 .../test/resources/test-documents/testOneNote.one  |  Bin
 .../test/resources/test-documents/testOneNote1.one |  Bin
 .../test/resources/test-documents/testOneNote2.one |  Bin
 .../test-documents/testOneNote2007OrEarlier1.one   |  Bin
 .../test-documents/testOneNote2007OrEarlier2.one   |  Bin
 .../resources/test-documents/testOneNote2016.one   |  Bin
 .../test/resources/test-documents/testOneNote3.one |  Bin
 .../test/resources/test-documents/testOneNote4.one |  Bin
 .../test-documents/testOneNoteEmbeddedWordDoc.one  |  Bin
 .../src/test/resources/test-documents/testPPM.ppm  |    0
 .../src/test/resources/test-documents/testPPT.potm |  Bin
 .../src/test/resources/test-documents/testPPT.ppsm |  Bin
 .../src/test/resources/test-documents/testPPT.ppsx |  Bin
 .../src/test/resources/test-documents/testPPT.ppt  |  Bin
 .../src/test/resources/test-documents/testPPT.pptm |  Bin
 .../test/resources/test-documents}/testPPT.pptx    |  Bin
 .../src/test/resources/test-documents/testPPT.thmx |  Bin
 .../src/test/resources/test-documents/testPPT.xps  |  Bin
 .../test-documents/testPPTX_Thumbnail.pptx         |  Bin
 .../testPPTX_overlappingRelations.pptx             |  Bin
 .../resources/test-documents/testPPT_2imgs.ppt     |  Bin
 .../resources/test-documents/testPPT_2imgs.pptx    |  Bin
 .../test-documents/testPPT_EmbeddedPDF.ppt         |  Bin
 .../test-documents/testPPT_EmbeddedPDF.pptx        |  Bin
 .../resources/test-documents/testPPT_autodate.ppt  |  Bin
 .../resources/test-documents/testPPT_autodate.pptx |  Bin
 .../resources/test-documents/testPPT_charts.pptx   |  Bin
 .../resources/test-documents/testPPT_comment.ppt   |  Bin
 .../resources/test-documents/testPPT_comment.pptx  |  Bin
 .../test-documents/testPPT_custom_props.ppt        |  Bin
 .../test-documents/testPPT_custom_props.pptx       |  Bin
 .../test-documents/testPPT_diagramData.pptx        |  Bin
 .../resources/test-documents/testPPT_embedded2.ppt |  Bin
 .../test-documents/testPPT_embeddedMP3.pptx        |  Bin
 .../testPPT_embedded_two_slides.pptx               |  Bin
 .../resources/test-documents/testPPT_embeded.ppt   |  Bin
 .../resources/test-documents/testPPT_embeded.pptx  |  Bin
 .../resources/test-documents/testPPT_groups.ppt    |  Bin
 .../resources/test-documents/testPPT_groups.pptx   |  Bin
 .../resources/test-documents/testPPT_macros.ppt    |  Bin
 .../resources/test-documents/testPPT_macros.pptm   |  Bin
 .../test-documents/testPPT_masterFooter.ppt        |  Bin
 .../test-documents/testPPT_masterFooter.pptx       |  Bin
 .../test-documents/testPPT_masterText.ppt          |  Bin
 .../test-documents/testPPT_masterText.pptx         |  Bin
 .../test-documents/testPPT_masterText2.ppt         |  Bin
 .../test-documents/testPPT_masterText2.pptx        |  Bin
 .../test-documents/testPPT_oleWorkbook.ppt         |  Bin
 .../test-documents/testPPT_oleWorkbook.pptx        |  Bin
 .../test-documents/testPPT_protected_passtika.ppt  |  Bin
 .../test-documents/testPPT_protected_passtika.pptx |  Bin
 .../resources/test-documents/testPPT_signed.pptx   |  Bin
 .../testPPT_skipBadCompressedObject.ppt            |  Bin
 .../resources/test-documents/testPPT_various.ppt   |  Bin
 .../resources/test-documents/testPPT_various.pptx  |  Bin
 .../resources/test-documents/testPPT_various2.pptx |  Bin
 .../resources/test-documents/testPROJECT2003.mpp   |  Bin
 .../resources/test-documents/testPROJECT2007.mpp   |  Bin
 .../src/test/resources/test-documents/testPST.pst  |  Bin
 .../test-documents/testPST_variousBodyTypes.pst    |  Bin
 .../resources/test-documents/testPUBLISHER.pub     |  Bin
 .../resources/test-documents/testRTF-ms932.rtf     |    0
 .../src/test/resources/test-documents/testRTF.rtf  |    0
 .../resources/test-documents/testRTFBoldItalic.rtf |    0
 .../resources/test-documents/testRTFBoldPlain.rtf  |    0
 .../resources/test-documents/testRTFControls.rtf   |    0
 .../test-documents/testRTFCorruptListOverride.rtf  |    0
 .../test-documents/testRTFEmbeddedFiles.rtf        |    0
 .../test-documents/testRTFEmbeddedLink.rtf         |    0
 .../test-documents/testRTFHexEscapeInsideWord.rtf  |    0
 .../resources/test-documents/testRTFHyperlink.rtf  |    0
 .../test-documents/testRTFIgnoredControlWord.rtf   |    0
 .../test-documents/testRTFInvalidUnicode.rtf       |    0
 .../resources/test-documents/testRTFJapanese.rtf   |    0
 .../test-documents/testRTFListLibreOffice.rtf      |    0
 .../test-documents/testRTFListMicrosoftWord.rtf    |    0
 .../test-documents/testRTFListOverride.rtf         |    0
 .../resources/test-documents/testRTFNewlines.rtf   |    0
 .../test-documents/testRTFRegularImages.rtf        |    0
 .../resources/test-documents/testRTFTIKA_1713.rtf  |    0
 .../resources/test-documents/testRTFTIKA_2150.rtf  |    0
 .../resources/test-documents/testRTFTIKA_2500.rtf  |    0
 .../resources/test-documents/testRTFTIKA_2883.rtf  |  Bin
 .../resources/test-documents/testRTFTIKA_2899.rtf  |    0
 .../test-documents/testRTFTableCellSeparation.rtf  |    0
 .../test-documents/testRTFTableCellSeparation2.rtf |    0
 .../test-documents/testRTFUmlautSpaces.rtf         |    0
 .../test-documents/testRTFUmlautSpaces2.rtf        |    0
 .../test-documents/testRTFUnicodeGothic.rtf        |    0
 ...stRTFUnicodeUCNControlWordCharacterDoubling.rtf |    0
 .../resources/test-documents/testRTFVarious.rtf    |    0
 .../test-documents/testRTFWindowsCodepage1250.rtf  |    0
 .../test-documents/testRTFWithCurlyBraces.rtf      |    0
 .../testRTFWord2010CzechCharacters.rtf             |    0
 .../testRTFWordPadCzechCharacters.rtf              |    0
 .../test-documents/testRTF_annotation_spacing.rtf  |    0
 .../test/resources/test-documents/testVISIO.vsd    |  Bin
 .../test/resources/test-documents/testVISIO.vsdm   |  Bin
 .../test/resources/test-documents/testVISIO.vsdx   |  Bin
 .../test/resources/test-documents/testVISIO.vssm   |  Bin
 .../test/resources/test-documents/testVISIO.vssx   |  Bin
 .../test/resources/test-documents/testVISIO.vstm   |  Bin
 .../test/resources/test-documents/testVISIO.vstx   |  Bin
 .../test/resources/test-documents/testWINMAIL.dat  |  Bin
 .../src/test/resources/test-documents/testWMF.wmf  |  Bin
 .../resources/test-documents/testWMF_charset.wmf   |  Bin
 .../src/test/resources/test-documents/testWORD.doc |  Bin
 .../test/resources/test-documents/testWORD.docx    |  Bin
 .../test/resources/test-documents/testWORD2003.xml |    0
 .../test/resources/test-documents/testWORD6.doc    |  Bin
 .../resources/test-documents/testWORD_1img.doc     |  Bin
 .../resources/test-documents/testWORD_1img.docx    |  Bin
 .../resources/test-documents/testWORD_2003ml.xml   |    0
 .../resources/test-documents/testWORD_2006ml.doc   |  Bin
 .../resources/test-documents/testWORD_2006ml.docx  |  Bin
 .../resources/test-documents/testWORD_2006ml.xml   |    0
 .../resources/test-documents/testWORD_3imgs.doc    |  Bin
 .../resources/test-documents/testWORD_3imgs.docx   |  Bin
 .../test-documents/testWORD_boldHyperlink.doc      |  Bin
 .../test-documents/testWORD_boldHyperlink.docx     |  Bin
 .../testWORD_bold_character_runs.doc               |  Bin
 .../testWORD_bold_character_runs.docx              |  Bin
 .../testWORD_bold_character_runs2.doc              |  Bin
 .../testWORD_bold_character_runs2.docx             |  Bin
 .../resources/test-documents/testWORD_charts.docx  |  Bin
 .../testWORD_closingSmartQInHyperLink.doc          |  Bin
 .../test-documents/testWORD_custom_props.doc       |  Bin
 .../test-documents/testWORD_custom_props.docx      |  Bin
 .../test-documents/testWORD_diagramData.docx       |  Bin
 .../test-documents/testWORD_docSecurity.docx       |  Bin
 .../test-documents/testWORD_embedded_pdf.doc       |  Bin
 .../test-documents/testWORD_embedded_pdf.docx      |  Bin
 .../test-documents/testWORD_embedded_pics.docx     |  Bin
 .../test-documents/testWORD_embedded_rtf.doc       |  Bin
 .../resources/test-documents/testWORD_embeded.doc  |  Bin
 .../resources/test-documents/testWORD_embeded.docx |  Bin
 .../test-documents/testWORD_header_hyperlink.doc   |  Bin
 .../testWORD_italicsSurroundingHyperlink.doc       |  Bin
 .../resources/test-documents/testWORD_macros.doc   |  Bin
 .../resources/test-documents/testWORD_macros.docm  |  Bin
 .../testWORD_missing_ooxml_bean1.docx              |  Bin
 .../test-documents/testWORD_missing_text.docx      |  Bin
 .../test-documents/testWORD_multi_authors.doc      |  Bin
 .../test-documents/testWORD_multi_authors.docx     |  Bin
 .../test-documents/testWORD_no_format.doc          |  Bin
 .../test-documents/testWORD_no_format.docx         |  Bin
 .../test-documents/testWORD_null_style.docx        |  Bin
 .../test-documents/testWORD_numbered_list.doc      |  Bin
 .../test-documents/testWORD_numbered_list.docx     |  Bin
 .../testWORD_override_list_numbering.doc           |  Bin
 .../testWORD_override_list_numbering.docx          |  Bin
 .../resources/test-documents/testWORD_phonetic.doc |  Bin
 .../test-documents/testWORD_phonetic.docx          |  Bin
 .../test-documents/testWORD_protected_passtika.doc |  Bin
 .../testWORD_protected_passtika.docx               |  Bin
 .../test-documents/testWORD_sdtInTextBox.docx      |  Bin
 .../resources/test-documents/testWORD_signed.docx  |  Bin
 .../testWORD_specialControlCharacter1415.doc       |  Bin
 .../test-documents/testWORD_tabular_symbol.doc     |  Bin
 .../test-documents/testWORD_template.docx          |  Bin
 .../test-documents/testWORD_template.dotx          |  Bin
 .../test-documents/testWORD_text_box.docx          |  Bin
 .../testWORD_totalTimeOutOfRange.docx              |  Bin
 .../test-documents/testWORD_truncated.docx         |  Bin
 .../resources/test-documents/testWORD_various.doc  |  Bin
 .../resources/test-documents/testWORD_various.docx |  Bin
 .../test-documents/testWORKSSpreadsheet7.0.xlr     |  Bin
 .../test/resources/test-documents/testWordArt.pptx |  Bin
 .../test-documents/testXLSX_Thumbnail.xlsx         |  Bin
 .../test-documents/testXPSWithDataDescriptor.xps   |  Bin
 .../test-documents/testXPSWithDataDescriptor2.xps  |  Bin
 .../resources/test-documents/testXPS_various.xps   |  Bin
 .../test-documents/testZIP_corrupted_oom.zip       |  Bin
 .../resources/test-documents/test_TIKA-1251.doc    |  Bin
 .../test-documents/test_embedded_zip.pptx          |  Bin
 .../test-documents/test_list_override.rtf          |    0
 .../test-documents/test_recursive_embedded.doc     |  Bin
 .../test-documents/test_recursive_embedded.docx    |  Bin
 .../test_recursive_embedded_npe.docx               |  Bin
 .../testsolidworksAssembly2013SP2.SLDASM           |  Bin
 .../testsolidworksAssembly2014SP0.SLDASM           |  Bin
 .../testsolidworksDrawing2013SP2.SLDDRW            |  Bin
 .../testsolidworksDrawing2014SP0.SLDDRW            |  Bin
 .../testsolidworksPart2013SP2.SLDPRT               |  Bin
 .../testsolidworksPart2014SP0.SLDPRT               |  Bin
 .../tika-parser-miscoffice-module/pom.xml          |   97 ++
 .../apache/tika/detect/ole/MiscOLEDetector.java    |  215 +++
 .../java/org/apache/tika/parser/dbf/DBFCell.java   |    0
 .../apache/tika/parser/dbf/DBFColumnHeader.java    |    0
 .../org/apache/tika/parser/dbf/DBFFileHeader.java  |    0
 .../java/org/apache/tika/parser/dbf/DBFParser.java |    0
 .../java/org/apache/tika/parser/dbf/DBFReader.java |    0
 .../java/org/apache/tika/parser/dbf/DBFRow.java    |    0
 .../apache/tika/parser/dif/DIFContentHandler.java  |  149 ++
 .../java/org/apache/tika/parser/dif/DIFParser.java |   85 +
 .../apache/tika/parser/epub/EpubContentParser.java |    0
 .../org/apache/tika/parser/epub/EpubParser.java    |  486 ++++++
 .../apache/tika/parser/hwp/HwpStreamReader.java    |    0
 .../apache/tika/parser/hwp/HwpTextExtractorV5.java |  494 ++++++
 .../org/apache/tika/parser/hwp/HwpV5Parser.java    |    0
 .../apache/tika/parser/mif/MIFContentHandler.java  |    0
 .../org/apache/tika/parser/mif/MIFExtractor.java   |    0
 .../java/org/apache/tika/parser/mif/MIFParser.java |    0
 .../parser/odf/FlatOpenDocumentMacroHandler.java   |    0
 .../tika/parser/odf/FlatOpenDocumentParser.java    |    0
 .../parser/odf/NSNormalizerContentHandler.java     |    0
 .../tika/parser/odf/OpenDocumentBodyHandler.java   |  564 +++++++
 .../tika/parser/odf/OpenDocumentContentParser.java |    0
 .../tika/parser/odf/OpenDocumentMacroHandler.java  |    0
 .../parser/odf/OpenDocumentManifestHandler.java    |    0
 .../tika/parser/odf/OpenDocumentMetaParser.java    |    0
 .../apache/tika/parser/odf/OpenDocumentParser.java |  369 +++++
 .../tika/parser/wordperfect/QPWTextExtractor.java  |  242 +++
 .../tika/parser/wordperfect/QuattroProParser.java  |    0
 .../tika/parser/wordperfect/WP5Charsets.java       |    0
 .../wordperfect/WP5DocumentAreaExtractor.java      |  111 ++
 .../tika/parser/wordperfect/WP6Charsets.java       |    0
 .../wordperfect/WP6DocumentAreaExtractor.java      |  172 ++
 .../wordperfect/WPDocumentAreaExtractor.java       |    0
 .../tika/parser/wordperfect/WPInputStream.java     |  235 +++
 .../tika/parser/wordperfect/WPPrefixArea.java      |    0
 .../parser/wordperfect/WPPrefixAreaExtractor.java  |    0
 .../tika/parser/wordperfect/WordPerfectParser.java |    0
 .../services/org.apache.tika.detect.Detector       |    0
 .../services/org.apache.tika.parser.Parser         |    0
 .../org/apache/tika/parser/dbf/DBFParserTest.java  |    0
 .../org/apache/tika/parser/dif/DIFParserTest.java  |    0
 .../apache/tika/parser/epub/EpubParserTest.java    |    0
 .../apache/tika/parser/hwp/HwpV5ParserTest.java    |    0
 .../tika/parser/ibooks/iBooksParserTest.java       |    0
 .../org/apache/tika/parser/mif/MIFParserTest.java  |    0
 .../org/apache/tika/parser/odf/ODFParserTest.java  |    0
 .../tika/parser/wordperfect/QuattroProTest.java    |    0
 .../tika/parser/wordperfect/WPInputStreamTest.java |    0
 .../tika/parser/wordperfect/WordPerfectTest.java   |    0
 .../org/apache/tika/parser/epub/tika-config.xml    |    0
 .../apache/tika/parser/odf/tika-config-macros.xml  |    0
 .../apache/tika/parser/wordperfect/tika-config.xml |    0
 .../test/resources/test-documents/Zamora2010.dif   |    0
 .../src/test/resources/test-documents/testDBF.dbf  |  Bin
 .../resources/test-documents/testDBF_gb18030.dbf   |  Bin
 .../test/resources/test-documents/testEPUB.epub    |  Bin
 .../resources/test-documents/testEPUB_xml_ext.epub |  Bin
 .../test/resources/test-documents/testFooter.ods   |  Bin
 .../test/resources/test-documents/testFooter.odt   |  Bin
 .../resources/test-documents/testFramemakerMif.mif |    0
 .../resources/test-documents/testHWP-v5-dist.hwp   |  Bin
 .../test/resources/test-documents/testHWP-v5b.hwp  |  Bin
 .../test/resources/test-documents/testHWP_3.0.hwp  |  Bin
 .../test/resources/test-documents/testHWP_5.0.hwp  |  Bin
 .../src/test/resources/test-documents/testMIF.mif  |  Bin
 .../resources/test-documents/testMasterFooter.odp  |  Bin
 .../test-documents/testNPEOpenDocument.odt         |  Bin
 .../resources/test-documents/testODFwithOOo3.odt   |  Bin
 .../resources/test-documents/testODPMacro.fodp     |    0
 .../test/resources/test-documents/testODPMacro.odp |  Bin
 .../test/resources/test-documents/testODP_NPE.odp  |  Bin
 .../resources/test-documents/testODSMacro.fods     |    0
 .../test/resources/test-documents/testODSMacro.ods |  Bin
 .../resources/test-documents/testODT-TIKA-6000.odt |  Bin
 .../resources/test-documents/testODTEmbedded.odt   |  Bin
 .../test-documents/testODTEmbeddedImageLink.odt    |  Bin
 .../resources/test-documents/testODTEncrypted.odt  |  Bin
 .../resources/test-documents/testODTMacro.fodt     |    0
 .../test/resources/test-documents/testODTMacro.odt |  Bin
 .../resources/test-documents/testODTNoMeta.odt     |  Bin
 .../resources/test-documents/testODTStyles2.odt    |  Bin
 .../resources/test-documents/testODTStyles3.odt    |  Bin
 .../test-documents/testODTnotaZipFile.odt          |    0
 .../test-documents/testOpenOffice-autotext.bau     |  Bin
 .../test-documents/testOpenOffice-extension.oxt    |  Bin
 .../resources/test-documents/testOpenOffice2.odf   |  Bin
 .../resources/test-documents/testOpenOffice2.odt   |  Bin
 .../test-documents/testOpenOfficeInAZip.zip        |  Bin
 .../test/resources/test-documents/testQUATTRO.qpw  |  Bin
 .../test/resources/test-documents/testQUATTRO.wb3  |  Bin
 .../test/resources/test-documents/testQuattro.wb1  |  Bin
 .../test/resources/test-documents/testQuattro.wb2  |  Bin
 .../test/resources/test-documents/testQuattro.wq1  |  Bin
 .../test/resources/test-documents/testQuattro.wq2  |  Bin
 .../test/resources/test-documents/testStyles.odt   |  Bin
 .../resources/test-documents/testWordPerfect.wpd   |  Bin
 .../test-documents/testWordPerfect_42.doc          |  Bin
 .../test-documents/testWordPerfect_5_0.wp          |  Bin
 .../test-documents/testWordPerfect_5_1.wp          |  Bin
 .../resources/test-documents/testiBooks.ibooks     |  Bin
 .../tika-parser-news-module/pom.xml                |   71 +
 .../org/apache/tika/parser/feed/FeedParser.java    |  129 ++
 .../apache/tika/parser/iptc/IptcAnpaParser.java    |  869 ++++++++++
 .../services/org.apache.tika.parser.Parser         |    0
 .../apache/tika/parser/feed/FeedParserTest.java    |    0
 .../test/resources/test-documents/rsstest_091.rss  |    0
 .../test/resources/test-documents/rsstest_20.rss   |    0
 .../test/resources/test-documents/testATOM.atom    |    0
 .../tika-parser-ocr-module/pom.xml                 |   71 +
 .../apache/tika/parser/ocr/ImagePreprocessor.java  |    0
 .../apache/tika/parser/ocr/TesseractOCRConfig.java |    0
 .../apache/tika/parser/ocr/TesseractOCRParser.java |  797 +++++++++
 .../apache/tika/parser/ocr/tess4j/ImageDeskew.java |    0
 .../apache/tika/parser/ocr/tess4j/ImageUtil.java   |    0
 .../services/org.apache.tika.parser.Parser         |    0
 .../tika/parser/ocr/TesseractOCRConfigTest.java    |    0
 .../tika/parser/ocr/TesseractOCRParserTest.java    |  319 ++++
 .../resources/test-configs/TIKA-2705-tesseract.xml |    0
 .../tika-config-tesseract-arbitrary.xml            |    0
 .../test-configs/tika-config-tesseract-full.xml    |    0
 .../tika-config-tesseract-load-langs.xml           |    0
 .../test-configs/tika-config-tesseract-partial.xml |    0
 .../src/test/resources/test-documents/testOCR.docx |  Bin
 .../src/test/resources/test-documents}/testOCR.jpg |  Bin
 .../src/test/resources/test-documents/testOCR.pptx |  Bin
 .../resources/test-documents/testOCR_spacing.png   |  Bin
 .../resources/test-documents/testRotated+10.png    |  Bin
 .../resources/test-documents/testRotated-10.png    |  Bin
 .../test-documents/testTIFF_multipage.tif          |  Bin
 .../tika-parser-pdf-module/pom.xml                 |  111 ++
 .../apache/tika/parser/pdf/AbstractPDF2XHTML.java  | 1088 ++++++++++++
 .../org/apache/tika/parser/pdf/AccessChecker.java  |    0
 .../tika/parser/pdf/ImageGraphicsEngine.java       |  491 ++++++
 .../java/org/apache/tika/parser/pdf/OCR2XHTML.java |    0
 .../java/org/apache/tika/parser/pdf/PDF2XHTML.java |  331 ++++
 .../org/apache/tika/parser/pdf/PDFDOMUtil.java     |   82 +
 .../tika/parser/pdf/PDFEncodedStringDecoder.java   |  119 ++
 .../tika/parser/pdf/PDFMarkedContent2XHTML.java    |    0
 .../java/org/apache/tika/parser/pdf/PDFParser.java |  673 ++++++++
 .../apache/tika/parser/pdf/PDFParserConfig.java    |    0
 .../apache/tika/parser/pdf/PDFPreflightParser.java |    0
 .../tika/parser/pdf/PDMetadataExtractor.java       |    0
 .../org/apache/tika/parser/pdf/XFAExtractor.java   |  311 ++++
 .../services/org.apache.tika.parser.Parser         |    0
 .../apache/tika/parser/pdf/AccessCheckerTest.java  |    0
 .../parser/pdf/PDFMarkedContent2XHTMLTest.java     |    0
 .../org/apache/tika/parser/pdf/PDFParserTest.java  | 1387 ++++++++++++++++
 .../tika/parser/pdf/PDFPreflightParserTest.java    |    0
 .../tika/parser/pdf/tika-config-non-primitives.xml |    0
 .../org/apache/tika/parser/pdf/tika-config.xml     |    0
 .../apache/tika/parser/pdf/tika-inline-config.xml  |    0
 .../org/apache/tika/parser/pdf/tika-ocr-config.xml |    0
 .../tika/parser/pdf/tika-preflight-config.xml      |    0
 .../tika/parser/pdf/tika-xml-profiler-config.xml   |    0
 .../resources/test-documents/testAnnotations.pdf   |  Bin
 .../resources/test-documents/testExtraSpaces.pdf   |  Bin
 .../resources/test-documents/testFlashInPDF.pdf    |  Bin 0 -> 161445 bytes
 .../resources/test-documents/testJournalParser.pdf |  Bin
 .../src/test/resources/test-documents/testOCR.pdf  |  Bin
 .../test-documents/testOptionalHyphen.pdf          |  Bin
 .../test-documents/testOverlappingText.pdf         |  Bin
 .../test-documents/testPDF-custommetadata.pdf      |  Bin
 .../src/test/resources/test-documents/testPDF.pdf  |  Bin
 .../testPDFEmbeddingAndEmbedded.docx               |  Bin
 .../test-documents/testPDFFileEmbInAnnotation.pdf  |  Bin
 .../testPDFFileEmbInAnnotation_noContents.pdf      |    0
 .../resources/test-documents/testPDFPackage.pdf    |  Bin
 .../test-documents/testPDFTripleLangTitle.pdf      |  Bin
 .../test-documents/testPDFTwoTextBoxes.pdf         |  Bin
 .../resources/test-documents/testPDFVarious.pdf    |  Bin
 .../resources/test-documents/testPDF_JBIG2.pdf     |  Bin
 .../testPDF_PDFEncodedStringInXMP.pdf              |  Bin
 .../test-documents/testPDF_Version.10.x.pdf        |  Bin
 .../testPDF_Version.11.x.PDFA-1b.pdf               |  Bin
 .../test-documents/testPDF_Version.4.x.pdf         |  Bin
 .../test-documents/testPDF_Version.5.x.pdf         |  Bin
 .../test-documents/testPDF_Version.6.x.pdf         |  Bin
 .../test-documents/testPDF_Version.7.x.pdf         |  Bin
 .../test-documents/testPDF_Version.8.x.pdf         |  Bin
 .../test-documents/testPDF_Version.9.x.pdf         |  Bin
 .../test-documents/testPDF_XFA_govdocs1_258578.pdf |  Bin
 .../test-documents/testPDF_XMPBasicSchema.pdf      |  Bin
 .../resources/test-documents/testPDF_acroform3.pdf |  Bin
 .../resources/test-documents/testPDF_angles.pdf    |  Bin
 .../test-documents/testPDF_bad_page_303226.pdf     |  Bin
 .../test/resources/test-documents/testPDF_bom.pdf  |  Bin
 .../resources/test-documents/testPDF_bookmarks.pdf |  Bin
 .../test-documents/testPDF_childAttachments.pdf    |  Bin
 .../testPDF_deeplyEmbeddedAttachments.pdf          |  Bin
 .../test-documents/testPDF_diffTitles.pdf          |    0
 .../test-documents/testPDF_multiFormatEmbFiles.pdf |  Bin
 ...PDF_no_extract_no_accessibility_owner_empty.pdf |    0
 ...tPDF_no_extract_no_accessibility_owner_user.pdf |    0
 ...DF_no_extract_yes_accessibility_owner_empty.pdf |    0
 ...PDF_no_extract_yes_accessibility_owner_user.pdf |    0
 .../resources/test-documents/testPDF_protected.pdf |  Bin
 .../test-documents/testPDF_twoAuthors.pdf          |  Bin
 .../resources/test-documents/testPageNumber.pdf    |  Bin
 .../test-documents/testPopupAnnotation.pdf         |  Bin
 .../test-documents/testStandardsExtractor.pdf      |  Bin
 .../tika-parser-pkg-module/pom.xml                 |   96 ++
 .../apache/tika/parser/pkg/CompressorParser.java   |  255 +++
 .../tika/parser/pkg/CompressorParserOptions.java   |    0
 .../org/apache/tika/parser/pkg/PackageParser.java  |  514 ++++++
 .../java/org/apache/tika/parser/pkg/RarParser.java |    0
 .../services/org.apache.tika.parser.Parser         |    0
 .../apache/tika/parser/pkg/AbstractPkgTest.java    |   90 +
 .../org/apache/tika/parser/pkg/ArParserTest.java   |    0
 .../apache/tika/parser/pkg/Bzip2ParserTest.java    |    0
 .../apache/tika/parser/pkg/CompressParserTest.java |    0
 .../tika/parser/pkg/CompressorParserTest.java      |    0
 .../org/apache/tika/parser/pkg/GzipParserTest.java |    0
 .../apache/tika/parser/pkg/PackageParserTest.java  |   85 +
 .../org/apache/tika/parser/pkg/RarParserTest.java  |    0
 .../apache/tika/parser/pkg/Seven7ParserTest.java   |    0
 .../org/apache/tika/parser/pkg/TarParserTest.java  |    0
 .../org/apache/tika/parser/pkg/ZipParserTest.java  |    0
 .../org/apache/tika/parser/pkg/ZlibParserTest.java |    0
 .../org/apache/tika/parser/pkg/tika-config.xml     |    0
 .../src/test/resources/test-documents/TIKA-216.tgz |  Bin
 .../src/test/resources/test-documents/droste.zip   |  Bin
 .../resources/test-documents/full_encrypted.7z     |  Bin
 .../src/test/resources/test-documents/gbk.zip      |  Bin 0 -> 432 bytes
 .../src/test/resources/test-documents/moby.zip     |  Bin
 .../src/test/resources/test-documents/quine.gz     |  Bin
 .../test-documents/test-documents-enc.rar          |  Bin
 .../test-documents/test-documents-spanned.z01      |  Bin
 .../test-documents/test-documents-spanned.zip      |  Bin
 .../resources/test-documents/test-documents.7z     |  Bin
 .../resources/test-documents/test-documents.cab    |  Bin
 .../resources/test-documents/test-documents.cpio   |  Bin
 .../resources/test-documents/test-documents.ddf    |    0
 .../resources/test-documents/test-documents.dmg    |  Bin
 .../resources/test-documents/test-documents.rar    |  Bin
 .../resources/test-documents/test-documents.tar    |  Bin
 .../resources/test-documents/test-documents.tar.Z  |  Bin
 .../resources/test-documents/test-documents.tbz2   |  Bin
 .../resources/test-documents/test-documents.tgz    |  Bin
 .../resources/test-documents}/test-documents.zip   |  Bin
 .../resources/test-documents/test-zip-of-zip.zip   |  Bin
 .../test-documents/test7Z_protected_passTika.7z    |  Bin
 .../test/resources/test-documents/testARofSND.ar   |  Bin
 .../test/resources/test-documents/testARofText.ar  |    0
 .../test-documents/testBROTLI_compressed.br        |  Bin
 .../test/resources/test-documents/testEmbedded.zip |  Bin
 .../resources/test-documents/testJAR_with_HTML.jar |  Bin
 .../test-documents/testJAR_with_PEHDR.jar          |  Bin
 .../resources/test-documents/testLZ4-framed.lz4    |  Bin
 .../src/test/resources/test-documents/testLZMA_oom |  Bin
 .../src/test/resources/test-documents/testSVG.svg  |    0
 .../src/test/resources/test-documents/testSVG.svgz |  Bin
 .../resources/test-documents/testSnappy-framed.sz  |  Bin
 .../src/test/resources/test-documents/testTXT.zlib |  Bin
 .../test/resources/test-documents/testTXT.zlib0    |  Bin
 .../test/resources/test-documents/testTXT.zlib5    |  Bin
 .../test/resources/test-documents/testTXT.zlib9    |  Bin
 .../test/resources/test-documents/testZSTD.zstd    |  Bin
 .../src/test/resources/test-documents/testZ_oom.Z  |    0
 .../resources/test-documents/testZipEncrypted.zip  |  Bin
 .../test-documents/testZip_with_DataDescriptor.zip |  Bin
 .../testZip_with_DataDescriptor2.zip               |  Bin
 .../tika-parser-text-module/pom.xml                |   83 +
 .../java/org/apache/tika/parser/csv/CSVParams.java |    0
 .../java/org/apache/tika/parser/csv/CSVResult.java |    0
 .../org/apache/tika/parser/csv/CSVSniffer.java     |  397 +++++
 .../apache/tika/parser/csv/TextAndCSVParser.java   |  356 ++++
 .../tika/parser/strings/Latin1StringsParser.java   |  323 ++++
 .../apache/tika/parser/strings/StringsConfig.java  |    0
 .../tika/parser/strings/StringsEncoding.java       |    0
 .../apache/tika/parser/strings/StringsParser.java  |  292 ++++
 .../apache/tika/parser/txt/CharsetDetector.java    |  610 +++++++
 .../org/apache/tika/parser/txt/CharsetMatch.java   |  271 +++
 .../apache/tika/parser/txt/CharsetRecog_2022.java  |    0
 .../apache/tika/parser/txt/CharsetRecog_UTF8.java  |    0
 .../tika/parser/txt/CharsetRecog_Unicode.java      |    0
 .../apache/tika/parser/txt/CharsetRecog_mbcs.java  |  536 ++++++
 .../apache/tika/parser/txt/CharsetRecog_sbcs.java  |    0
 .../apache/tika/parser/txt/CharsetRecognizer.java  |    0
 .../tika/parser/txt/Icu4jEncodingDetector.java     |    0
 .../java/org/apache/tika/parser/txt/TXTParser.java |    0
 .../tika/parser/txt/UniversalEncodingDetector.java |    0
 .../tika/parser/txt/UniversalEncodingListener.java |    0
 .../org.apache.tika.detect.EncodingDetector        |    0
 .../services/org.apache.tika.parser.Parser         |    0
 .../org/apache/tika/parser/csv/CSVSnifferTest.java |    0
 .../tika/parser/csv/TextAndCSVParserTest.java      |    0
 .../parser/strings/Latin1StringsParserTest.java    |    0
 .../tika/parser/strings/StringsConfigTest.java     |    0
 .../tika/parser/strings/StringsParserTest.java     |   77 +
 .../tika/parser/txt/CharsetDetectorTest.java       |    0
 .../org/apache/tika/parser/txt/TXTParserTest.java  |    0
 .../org/apache/tika/parser/csv/tika-config.xml     |    0
 .../test-configs/tika-config-strings-full.xml      |    0
 .../test-configs/tika-config-strings-partial.xml   |    0
 .../resources/test-documents/english.cp500.txt     |    0
 .../resources/test-documents/multi-language.txt    |    0
 .../src/test/resources/test-documents/resume.html  |    0
 .../resources/test-documents/russian.cp866.txt     |    0
 .../test-documents/testOCTET_header.dbase3         |  Bin
 .../resources/test-documents/testTXT_win-1252.txt  |    0
 .../resources/test-documents/testVCalendar.vcs     |    0
 .../tika-parser-xml-module/pom.xml                 |   65 +
 .../tika/parser/xliff/XLIFF12ContentHandler.java   |    0
 .../apache/tika/parser/xliff/XLIFF12Parser.java    |    0
 .../org/apache/tika/parser/xliff/XLZParser.java    |    0
 .../tika/parser/xml/AbstractMetadataHandler.java   |    0
 .../xml/AttributeDependantMetadataHandler.java     |    0
 .../tika/parser/xml/AttributeMetadataHandler.java  |    0
 .../org/apache/tika/parser/xml/DcXMLParser.java    |    0
 .../tika/parser/xml/ElementMetadataHandler.java    |    0
 .../apache/tika/parser/xml/FictionBookParser.java  |    0
 .../apache/tika/parser/xml/MetadataHandler.java    |    0
 .../tika/parser/xml/TextAndAttributeXMLParser.java |    0
 .../java/org/apache/tika/parser/xml/XMLParser.java |   89 +
 .../org/apache/tika/parser/xml/XMLProfiler.java    |  146 ++
 .../services/org.apache.tika.parser.Parser         |    0
 .../tika/parser/xliff/XLIFF12ParserTest.java       |    0
 .../apache/tika/parser/xliff/XLZParserTest.java    |    0
 .../apache/tika/parser/xml/DcXMLParserTest.java    |    0
 .../EmptyAndDuplicateElementsXMLParserTest.java    |    0
 .../tika/parser/xml/FictionBookParserTest.java     |    0
 .../parser/xml/TextAndAttributeXMLParserTest.java  |    0
 .../src/test/resources/test-documents/test.fb2     |    0
 .../test/resources/test-documents/testXLIFF12.xlf  |    0
 .../test/resources/test-documents/testXLIFF12.xlz  |  Bin
 .../src/test/resources/test-documents/testXML.xml  |    0
 .../src/test/resources/test-documents/testXML2.xml |    0
 .../src/test/resources/test-documents/testXML3.xml |    0
 .../src/test/resources/test-documents/testXXE.xml  |    0
 .../tika-parser-xmp-commons/pom.xml                |   61 +
 .../apache/tika/parser/xmp/JempboxExtractor.java   |    0
 .../apache/tika/parser/xmp/XMPPacketScanner.java   |    0
 .../tika/parser/xmp/JempboxExtractorTest.java      |  137 ++
 .../test-documents/testJPEG_commented.jpg          |  Bin
 .../testJPEG_commented_pspcs2mac.jpg               |  Bin
 .../testJPEG_commented_xnviewmp026.jpg             |  Bin
 .../src/test/resources/test-documents/testXMP.xmp  |    0
 .../tika-parser-zip-commons/pom.xml                |   60 +
 .../tika/detect/zip/CompressorConstants.java       |    0
 .../detect/zip/DefaultZipContainerDetector.java    |    0
 .../DeprecatedStreamingZipContainerDetector.java   |    0
 .../detect/zip/DeprecatedZipContainerDetector.java |    0
 .../org/apache/tika/detect/zip/IPADetector.java    |  109 ++
 .../org/apache/tika/detect/zip/JarDetector.java    |    0
 .../org/apache/tika/detect/zip/KMZDetector.java    |    0
 .../tika/detect/zip/OpenDocumentDetector.java      |    0
 .../apache/tika/detect/zip/PackageConstants.java   |    0
 .../apache/tika/detect/zip/StarOfficeDetector.java |    0
 .../tika/detect/zip/StreamingDetectContext.java    |   82 +
 .../detect/zip/StreamingZipContainerDetector.java  |    0
 .../tika/detect/zip/ZipContainerDetector.java      |    0
 .../tika/detect/zip/ZipContainerDetectorBase.java  |  108 ++
 .../org/apache/tika/zip/utils/ZipSalvager.java     |    0
 .../services/org.apache.tika.detect.Detector       |    0
 ...org.apache.tika.detect.zip.ZipContainerDetector |    0
 .../org/apache/tika/detect/zip/ZipParserTest.java  |    0
 .../src/test/resources/test-documents/testJAR.jar  |  Bin
 .../src/test/resources/test-documents/testKMZ.kmz  |  Bin
 .../tika-parsers-standard-package/pom.xml          |  418 +++++
 .../org/apache/tika/parser/internal/Activator.java |    0
 .../apache/tika/config/TikaDetectorConfigTest.java |    0
 .../tika/config/TikaEncodingDetectorTest.java      |  285 ++++
 .../apache/tika/config/TikaParserConfigTest.java   |    0
 .../tika/config/TikaTranslatorConfigTest.java      |    0
 .../tika/detect/TestContainerAwareDetector.java    |  555 +++++++
 .../apache/tika/detect/TestDetectorLoading.java    |    0
 .../tika/detect/TestFileCommandDetector.java       |    0
 .../tika/extractor/EmbeddedDocumentUtilTest.java   |    0
 .../java/org/apache/tika/mime/MimeTypeTest.java    |    0
 .../java/org/apache/tika/mime/MimeTypesTest.java   |    0
 .../java/org/apache/tika/mime/TestMimeTypes.java   |    0
 .../apache/tika/parser/AutoDetectParserTest.java   |  470 ++++++
 .../tika/parser/AutoDetectReaderParserTest.java    |   91 +
 .../parser/BouncyCastleDigestingParserTest.java    |    0
 .../apache/tika/parser/DigestingParserTest.java    |    0
 .../org/apache/tika/parser/ParsingReaderTest.java  |    0
 .../tika/parser/RecursiveParserWrapperTest.java    |  413 +++++
 .../org/apache/tika/parser/TabularFormatsTest.java |    0
 .../java/org/apache/tika/parser/TestParsers.java   |  133 ++
 .../apache/tika/parser/TestXMLEntityExpansion.java |  150 ++
 .../java/org/apache/tika/parser/TestXXEInXML.java  |    0
 .../java/org/apache/tika/parser/XMLTestBase.java   |    0
 .../parser/apple/AppleSingleFileParserTest.java    |    0
 .../apache/tika/parser/apple/PListParserTest.java  |    0
 .../apache/tika/parser/crypto/TSDParserTest.java   |    0
 .../parser/fork/ForkParserIntegrationTest.java     |  315 ++++
 .../apache/tika/parser/html/HtmlParserTest.java    |    0
 .../apache/tika/parser/mail/MboxParserTest.java    |    0
 .../apache/tika/parser/mail/RFC822ParserTest.java  |  166 ++
 .../tika/parser/microsoft/EMFParserTest.java       |    0
 .../tika/parser/microsoft/ExcelParserTest.java     |    0
 .../microsoft/POIContainerExtractionTest.java      |    0
 .../parser/microsoft/PowerPointParserTest.java     |    0
 .../tika/parser/microsoft/XML2003ParserTest.java   |    0
 .../parser/microsoft/ooxml/OOXMLParserTest.java    |    0
 .../parser/microsoft/ooxml/TruncatedOOXMLTest.java |    0
 .../tika/parser/microsoft/rtf/RTFParserTest.java   |    0
 .../apache/tika/parser/mock/MockParserTest.java    |    0
 .../tika/parser/ocr/TesseractOCRParserTest.java    |    0
 .../org/apache/tika/parser/odf/ODFParserTest.java  |    0
 .../org/apache/tika/parser/pdf/PDFParserTest.java  |  407 +++++
 .../org/apache/tika/parser/pkg/ArParserTest.java   |    0
 .../apache/tika/parser/pkg/Bzip2ParserTest.java    |    0
 .../pkg/CompositeZipContainerDetectorTest.java     |    0
 .../apache/tika/parser/pkg/CompressParserTest.java |    0
 .../tika/parser/pkg/CompressorParserTest.java      |    0
 .../org/apache/tika/parser/pkg/GzipParserTest.java |    0
 .../apache/tika/parser/pkg/PackageParserTest.java  |   34 +
 .../org/apache/tika/parser/pkg/RarParserTest.java  |    0
 .../apache/tika/parser/pkg/Seven7ParserTest.java   |  167 ++
 .../org/apache/tika/parser/pkg/TarParserTest.java  |    0
 .../org/apache/tika/parser/pkg/ZipParserTest.java  |  142 ++
 .../org/apache/tika/parser/pkg/ZlibParserTest.java |    0
 .../tika/parser/xml/FictionBookParserTest.java     |    0
 .../sax/PhoneExtractingContentHandlerTest.java     |    0
 .../sax/StandardsExtractingContentHandlerTest.java |    0
 .../apache/tika/utils/ServiceLoaderUtilsTest.java  |    0
 .../src/test/resources/log4j.properties            |    0
 .../org/apache/tika/config/TIKA-1558-exclude.xml   |    0
 .../apache/tika/config/TIKA-1558-excludesub.xml    |    0
 .../tika/config/TIKA-1702-detector-exclude.xml     |    0
 .../tika/config/TIKA-1702-translator-default.xml   |    0
 .../config/TIKA-1702-translator-empty-default.xml  |    0
 .../tika/config/TIKA-1702-translator-empty.xml     |    0
 .../tika/config/TIKA-1708-detector-composite.xml   |    0
 .../tika/config/TIKA-1708-detector-default.xml     |    0
 ...-2273-encoding-detector-outside-static-init.xml |    0
 ...TIKA-2273-exclude-encoding-detector-default.xml |    0
 .../TIKA-2273-no-icu4j-encoding-detector.xml       |    0
 .../TIKA-2273-non-detecting-params-bad-charset.xml |    0
 .../tika/config/TIKA-2273-non-detecting-params.xml |    0
 .../TIKA-2273-parameterize-encoding-detector.xml   |    0
 .../TIKA-2485-encoding-detector-mark-limits.xml    |    0
 .../org/apache/tika/parser/TIKA-3137-include.xml   |   38 +
 .../apache/tika/parser/odf/tika-config-macros.xml  |    0
 .../CVLKRA-KYC_Download_File_Structure_V3.1.xlsx   |  Bin
 .../test/resources/test-documents/NUTCH-1997.cbor  |    0
 .../active_layer_arcss_grid_barrow_alaska_2012.dif |    0
 .../src/test/resources/test-documents/baseball.gif |  Bin
 .../src/test/resources/test-documents/baseball.jpg |  Bin
 .../src/test/resources/test-documents/baseball.png |  Bin
 ..._values_of_alkanes_extracted_from_paleosols.dif |    0
 .../test-documents/mock/embedded_then_npe.xml      |    0
 .../test/resources/test-documents/mock/example.xml |    0
 .../resources/test-documents/mock/fake_oom.xml     |    0
 .../resources/test-documents/mock/heavy_hang.xml   |    0
 .../resources/test-documents/mock/nothing_bad.xml  |    0
 .../resources/test-documents/mock/null_pointer.xml |    0
 .../test-documents/mock/null_pointer_no_msg.xml    |    0
 .../resources/test-documents/mock/real_oom.xml     |    0
 .../test/resources/test-documents/mock/sleep.xml   |    0
 .../test-documents/mock/sleep_interruptible.xml    |    0
 .../mock/sleep_not_interruptible.xml               |    0
 .../resources/test-documents/mock/system_exit.xml  |    0
 .../test-documents/mock/thread_interrupt.xml       |    0
 .../resources/test-documents/test-columnar.csv     |    0
 .../resources/test-documents/test-columnar.ods     |  Bin
 .../resources/test-documents/test-columnar.xpt     |  Bin
 .../src/test/resources/test-documents/test1.swf    |  Bin
 .../src/test/resources/test-documents/test2.swf    |  Bin
 .../src/test/resources/test-documents/test3.swf    |  Bin
 .../src/test/resources/test-documents/testAC3.ac3  |  Bin
 .../test/resources/test-documents/testAMR-WB.amr   |  Bin
 .../src/test/resources/test-documents/testAMR.amr  |  Bin
 .../src/test/resources/test-documents/testAPK.apk  |  Bin
 .../src/test/resources/test-documents/testASF.asf  |  Bin
 .../test/resources/test-documents/testASiCE.asice  |  Bin
 .../test/resources/test-documents/testASiCS.asics  |  Bin
 .../src/test/resources/test-documents/testBAT.bat  |    0
 .../test/resources/test-documents/testBATUpper.bat |    0
 .../resources/test-documents/testBDB_btree_2.db    |  Bin
 .../resources/test-documents/testBDB_btree_3.db    |  Bin
 .../resources/test-documents/testBDB_btree_4.db    |  Bin
 .../resources/test-documents/testBDB_btree_5.db    |  Bin
 .../resources/test-documents/testBDB_hash_2.db     |  Bin
 .../resources/test-documents/testBDB_hash_3.db     |  Bin
 .../resources/test-documents/testBDB_hash_4.db     |  Bin
 .../resources/test-documents/testBDB_hash_5.db     |  Bin
 .../test/resources/test-documents/testBIBTEX.bib   |    0
 .../test/resources/test-documents/testBMPfp.txt    |    0
 .../src/test/resources/test-documents/testCERT.der |  Bin
 .../src/test/resources/test-documents/testCERT.pem |    0
 .../test/resources/test-documents/testCOREL.shw    |  Bin
 .../src/test/resources/test-documents/testCSS.css  |    0
 .../src/test/resources/test-documents/testCSV.csv  |    0
 .../test/resources/test-documents/testComment.pdf  |  Bin
 .../src/test/resources/test-documents/testDCX.dcx  |  Bin
 .../test/resources/test-documents/testDITA.dita    |    0
 .../test/resources/test-documents/testDITA.ditamap |    0
 .../test/resources/test-documents/testDITA2.dita   |    0
 .../test/resources/test-documents/testDJVU.djvu    |  Bin
 .../test/resources/test-documents/testDSAKEY.der   |  Bin
 .../test/resources/test-documents/testDSAKEY.pem   |    0
 .../resources/test-documents/testDSAPARAMS.pem     |    0
 .../test/resources/test-documents/testDWF2010.dwf  |  Bin
 .../resources/test-documents/testDXF_ascii.dxf     |    0
 .../test/resources/test-documents/testDigilite.fdf |    0
 .../src/test/resources/test-documents/testEAC3.ac3 |  Bin
 .../src/test/resources/test-documents/testEAR.ear  |  Bin
 .../test/resources/test-documents/testECKEY.der    |  Bin
 .../test/resources/test-documents/testECKEY.pem    |    0
 .../test/resources/test-documents/testECPARAMS.pem |    0
 .../test-documents/testEndNoteImportFile.enw       |    0
 .../test/resources/test-documents/testFITS.fits    |    0
 .../test-documents/testFITS_ShorterHeader.fits     |    0
 .../test/resources/test-documents/testFLAC.flac    |  Bin
 .../src/test/resources/test-documents/testFLAC.oga |  Bin
 .../test/resources/test-documents/testFOXMAIL.box  |    0
 .../resources/test-documents/testFreeBSD-x86-64    |  Bin
 .../resources/test-documents/testGRAPHVIZd.dot     |    0
 .../resources/test-documents/testGRAPHVIZdc.dot    |    0
 .../resources/test-documents/testGRAPHVIZg.dot     |    0
 .../src/test/resources/test-documents/testH.h      |    0
 .../src/test/resources/test-documents/testHFA.hfa  |  Bin
 .../resources/test-documents/testICalendar.ics     |    0
 .../test/resources/test-documents/testINDD.indd    |  Bin
 .../src/test/resources/test-documents/testIPA.ipa  |  Bin
 .../test-documents/testJAVAPROPS.properties        |    0
 .../resources/test-documents/testJNILIB.jnilib     |  Bin
 .../resources/test-documents/testJavaHprofBinary   |  Bin
 .../resources/test-documents/testJavaHprofText     |    0
 .../src/test/resources/test-documents/testKML.kml  |    0
 .../test-documents/testLotus123-lotusftp.123       |  Bin
 .../test-documents/testLotus123-lotusftp.wk4       |  Bin
 .../test/resources/test-documents/testLotus123.wk1 |  Bin
 .../test/resources/test-documents/testLotus123.wk3 |  Bin
 .../test/resources/test-documents/testLotus123.wks |  Bin
 .../test/resources/test-documents/testLotusEml.eml |    0
 .../test-documents/testMHTMLFirefox.mhtml          |    0
 .../src/test/resources/test-documents/testMKV.mkv  |  Bin
 .../resources/test-documents/testMSWriteFile.wri   |  Bin
 .../test/resources/test-documents/testMYSQL.MYD    |  Bin
 .../test/resources/test-documents/testMYSQL.MYI    |  Bin
 .../test/resources/test-documents/testMYSQL.frm    |  Bin
 .../resources/test-documents/testMemgraph.memgraph |  Bin
 .../resources/test-documents/testMessageNews.txt   |    0
 .../src/test/resources/test-documents/testNLS1.nls |  Bin
 .../src/test/resources/test-documents/testNLS2.nls |  Bin
 .../test/resources/test-documents/testOPUS.opus    |  Bin
 .../test-documents/testOptionalHyphen.doc          |  Bin
 .../test-documents/testOptionalHyphen.docx         |  Bin
 .../test-documents/testOptionalHyphen.ppt          |  Bin
 .../test-documents/testOptionalHyphen.pptx         |  Bin
 .../test-documents/testOptionalHyphen.rtf          |    0
 .../src/test/resources/test-documents/testPBM.pbm  |    0
 .../src/test/resources/test-documents/testPCX.pcx  |  Bin
 .../src/test/resources/test-documents/testPGM.pgm  |    0
 .../src/test/resources/test-documents/testPICT.pct |  Bin
 .../test-documents/testPKCS17Sig-v2.xml.p7m        |  Bin
 .../test-documents/testPKCS17Sig-v3.xml.p7m        |    0
 .../test-documents/testPKCS17Sig-v4.xml.p7m        |    0
 .../resources/test-documents/testPKCS17Sig.xml.p7m |    0
 .../test-documents/testPhoneNumberExtractor.odt    |  Bin
 .../src/test/resources/test-documents/testRDF.rdf  |    0
 .../test/resources/test-documents/testRSAKEY.der   |  Bin
 .../test/resources/test-documents/testRSAKEY.pem   |    0
 .../resources/test-documents/testSolaris-x86-32    |  Bin
 .../test-documents/testStarOffice-5.2-calc.sdc     |  Bin
 .../test-documents/testStarOffice-5.2-draw.sda     |  Bin
 .../test-documents/testStarOffice-5.2-impress.sdd  |  Bin
 .../test-documents/testStarOffice-5.2-writer.sdw   |  Bin
 .../test-documents/testStarOffice-6.0-calc.sxc     |  Bin
 .../test-documents/testStarOffice-6.0-draw.sxd     |  Bin
 .../test-documents/testStarOffice-6.0-draw.sxi     |  Bin
 .../testStarOffice-6.0-writer-template.stw         |  Bin
 .../test-documents/testStarOffice-6.0-writer.sxw   |  Bin
 .../test/resources/test-documents/testStataDTA.dta |  Bin
 .../test/resources/test-documents/testStataDTA.txt |    0
 .../resources/test-documents/testTAR_no_magic.tar  |  Bin
 .../test/resources/test-documents/testTXT-tika.axx |  Bin
 .../src/test/resources/test-documents/testTXT.txt  |    0
 .../test-documents/testTXTNonASCIIUTF8.txt         |    0
 .../test-documents/testThunderbirdEml.eml          |    0
 .../test/resources/test-documents/testTinyPE.exe   |  Bin
 .../test/resources/test-documents/testVORBIS.ogg   |  Bin
 .../test-documents/testVORCalcTemplate.vor         |  Bin
 .../test-documents/testVORDrawTemplate.vor         |  Bin
 .../test-documents/testVORImpressTemplate.vor      |  Bin
 .../test-documents/testVORWriterTemplate.vor       |  Bin
 .../test/resources/test-documents/testVideoMp4.mp4 |  Bin
 .../src/test/resources/test-documents/testWAR.war  |  Bin
 .../test/resources/test-documents/testWEBM.webm    |  Bin
 .../src/test/resources/test-documents/testWMA.wma  |  Bin
 .../src/test/resources/test-documents/testWMV.wmv  |  Bin
 .../test/resources/test-documents/testWMV_WMV2.wmv |  Bin
 .../test/resources/test-documents/testWORKS.wps    |  Bin
 .../resources/test-documents/testWORKS2000.wps     |  Bin
 .../test-documents/testWORKSWordProcessor3.0.wps   |  Bin
 .../test-documents/testWORKSWordProcessor4.0.wps   |  Bin
 .../test/resources/test-documents/testWebVTT.vtt   |    0
 .../resources/test-documents/testWebVTT_header.vtt |    0
 .../resources/test-documents/testWebVTT_simple.vtt |    0
 .../test-documents/testWindowsMediaMeta.asx        |    0
 .../src/test/resources/test-documents/testXDP.xdp  |    0
 .../test/resources/test-documents/testXFDF.xfdf    |    0
 tika-pipes/pom.xml                                 |  108 +-
 tika-pipes/tika-emitters/pom.xml                   |   36 +-
 tika-pipes/tika-emitters/tika-emitter-fs/pom.xml   |  179 +-
 .../tika/pipes/emitter/fs/FileSystemEmitter.java   |   22 +-
 tika-pipes/tika-emitters/tika-emitter-s3/pom.xml   |  273 ++-
 .../apache/tika/pipes/emitter/s3/S3Emitter.java    |    5 +-
 tika-pipes/tika-emitters/tika-emitter-solr/pom.xml |  240 +--
 .../tika/pipes/emitter/solr/SolrEmitter.java       |  280 ++--
 .../apache/tika/pipes/emitter/solr/TestBasic.java  |   86 -
 .../src/test/resources/log4j.properties            |   20 +-
 .../test/resources/tika-config-simple-emitter.xml  |   64 +-
 tika-pipes/tika-fetch-iterators/pom.xml            |   43 -
 .../tika-fetch-iterator-csv/pom.xml                |  129 --
 .../pipes/fetchiterator/csv/CSVFetchIterator.java  |  237 ---
 .../src/test/java/TestCSVFetchIterator.java        |  121 --
 .../tika-fetch-iterator-jdbc/pom.xml               |  123 --
 .../fetchiterator/jdbc/JDBCFetchIterator.java      |  267 ---
 .../fetchiterator/jdbc/TestJDBCFetchIterator.java  |  191 ---
 .../src/test/resources/log4j.properties            |   22 -
 .../tika-fetch-iterator-s3/pom.xml                 |  159 --
 .../pipes/fetchiterator/s3/S3FetchIterator.java    |  141 --
 .../fetchiterator/s3/TestS3FetchIterator.java      |  100 --
 tika-pipes/tika-fetchers/pom.xml                   |   34 +-
 tika-pipes/tika-fetchers/tika-fetcher-http/pom.xml |  193 ++-
 .../tika/pipes/fetcher/http/HttpFetcherTest.java   |   13 +-
 .../src/test/resources/tika-config-http.xml        |    2 +-
 tika-pipes/tika-fetchers/tika-fetcher-s3/pom.xml   |    8 +-
 .../tika/pipes/fetcher/s3/TestS3Fetcher.java       |    8 +-
 .../src/test/resources/tika-config-s3.xml          |    8 +-
 tika-pipes/tika-httpclient-commons/pom.xml         |   52 +-
 .../org/apache/tika/client/HttpClientFactory.java  |   33 +-
 tika-pipes/tika-pipes-async/pom.xml                |  101 --
 .../java/org/apache/tika/pipes/async/AsyncCli.java |  358 ----
 .../org/apache/tika/pipes/async/AsyncConfig.java   |   76 -
 .../org/apache/tika/pipes/async/AsyncData.java     |   57 -
 .../org/apache/tika/pipes/async/AsyncEmitHook.java |   24 -
 .../org/apache/tika/pipes/async/AsyncEmitter.java  |  125 --
 .../tika/pipes/async/AsyncEmitterProcess.java      |  379 -----
 .../tika/pipes/async/AsyncPipesEmitHook.java       |   61 -
 .../apache/tika/pipes/async/AsyncProcessor.java    |  594 -------
 .../tika/pipes/async/AsyncRuntimeException.java    |   27 -
 .../org/apache/tika/pipes/async/AsyncTask.java     |   54 -
 .../org/apache/tika/pipes/async/AsyncWorker.java   |  195 ---
 .../tika/pipes/async/AsyncWorkerProcess.java       |  505 ------
 .../src/main/resources/log4j.properties            |   22 -
 .../tika/pipes/async/AsyncProcessorTest.java       |  105 --
 .../org/apache/tika/pipes/async/MockEmitter.java   |  103 --
 .../org/apache/tika/pipes/async/MockFetcher.java   |   44 -
 .../apache/tika/pipes/async/SerializationTest.java |   49 -
 tika-pipes/tika-pipes-integration-tests/pom.xml    |  172 +-
 .../apache/tika/pipes/PipeIntegrationTests.java    |   55 +-
 .../tika/pipes/solrtest/TikaPipesSolr6Test.java    |   46 +
 .../tika/pipes/solrtest/TikaPipesSolr7Test.java    |   47 +
 .../tika/pipes/solrtest/TikaPipesSolr8Test.java    |   46 +
 .../tika/pipes/solrtest/TikaPipesSolrTestBase.java |  163 ++
 .../src/test/resources/log4j2.properties           |   28 +
 .../test/resources/tika-async-log4j2.properties    |   29 +
 .../src/test/resources/tika-config-s3ToFs.xml      |   22 +-
 .../src/test/resources/tika-config-s3Tos3.xml      |   34 +-
 .../src/test/resources/tika-config-solr-urls.xml   |  122 ++
 tika-pipes/tika-pipes-iterators/pom.xml            |   42 +
 .../tika-pipes-iterator-csv/pom.xml                |  127 ++
 .../pipes/pipesiterator/csv/CSVPipesIterator.java  |  268 +++
 .../src/test/java/TestCSVPipesIterator.java        |  121 ++
 .../src/test/resources/test-simple.csv             |    0
 .../tika-pipes-iterator-jdbc/pom.xml               |  118 ++
 .../pipesiterator/jdbc/JDBCPipesIterator.java      |  294 ++++
 .../pipesiterator/jdbc/TestJDBCPipesIterator.java  |  189 +++
 .../src/test/resources/log4j.properties            |    0
 .../tika-pipes-iterator-s3/pom.xml                 |  155 ++
 .../pipes/pipesiterator/s3/S3PipesIterator.java    |  145 ++
 .../pipesiterator/s3/TestS3PipesIterator.java      |  100 ++
 .../src/test/resources/log4j.properties            |    0
 .../tika-pipes-iterator-solr/pom.xml               |  159 ++
 .../tika/pipes/solrtest/SolrPipesIterator.java     |  263 +++
 tika-serialization/pom.xml                         |   47 +-
 .../tika/metadata/serialization/JsonEmitData.java  |    7 +-
 .../metadata/serialization/JsonFetchEmitTuple.java |  105 +-
 .../serialization/JsonFetchEmitTupleList.java      |   37 +-
 .../tika/metadata/serialization/JsonMetadata.java  |   19 +-
 .../serialization/JsonMetadataDeserializer.java    |    1 -
 .../metadata/serialization/JsonMetadataList.java   |   22 +-
 .../serialization/JsonMetadataSerializer.java      |    3 +-
 .../serialization/JsonStreamingSerializer.java     |   12 +-
 .../serialization/PrettyMetadataKeyComparator.java |   33 +-
 .../serialization/JsonFetchEmitTupleListTest.java  |   32 +-
 .../serialization/JsonFetchEmitTupleTest.java      |   24 +-
 .../serialization/JsonMetadataListTest.java        |   56 +-
 .../metadata/serialization/JsonMetadataTest.java   |   67 +-
 tika-server/pom.xml                                |  103 +-
 tika-server/tika-server-classic/assembly.xml       |   46 -
 tika-server/tika-server-classic/bin/tika.in.sh     |   80 -
 tika-server/tika-server-classic/pom.xml            |  231 ---
 .../server/classic/config/PDFServerConfig.java     |   70 -
 .../classic/config/TesseractServerConfig.java      |   69 -
 .../classic/resource/XMPMetadataResource.java      |   69 -
 .../classic/writer/XMPMessageBodyWriter.java       |   70 -
 .../org.apache.tika.server.core.ParseContextConfig |   16 -
 ...he.tika.server.core.resource.TikaServerResource |   15 -
 ...apache.tika.server.core.writer.TikaServerWriter |   15 -
 .../src/main/resources/log4j.properties            |   22 -
 .../tika/server/classic/DetectorResourceTest.java  |   98 --
 .../apache/tika/server/classic/FetcherTest.java    |   95 --
 .../tika/server/classic/MetadataResourceTest.java  |  231 ---
 .../classic/RecursiveMetadataFilterTest.java       |  101 --
 .../classic/RecursiveMetadataResourceTest.java     |  367 -----
 .../tika/server/classic/TikaDetectorsTest.java     |  138 --
 .../tika/server/classic/TikaMimeTypesTest.java     |   87 -
 .../tika/server/classic/TikaParsersTest.java       |  191 ---
 .../tika/server/classic/TikaResourceTest.java      |  604 -------
 .../tika/server/classic/UnpackerResourceTest.java  |  235 ---
 .../test/resources/config/TIKA-3137-include.xml    |   38 -
 .../src/test/resources/log4j.properties            |   22 -
 tika-server/tika-server-client/pom.xml             |  214 +--
 .../org/apache/tika/server/client/TikaClient.java  |    2 +-
 .../apache/tika/server/client/TikaClientCLI.java   |   29 +-
 .../apache/tika/server/client/TikaHttpClient.java  |    3 +-
 .../src/main/resources/log4j.properties            |   22 -
 .../src/main/resources/log4j2.properties           |   29 +
 .../src/test/resources/log4j.properties            |   22 -
 .../src/test/resources/log4j2.properties           |   29 +
 .../resources/tika-config-simple-fs-emitter.xml    |  115 +-
 tika-server/tika-server-core/pom.xml               |  700 ++++----
 .../server/core/ProduceTypeResourceComparator.java |  145 ++
 .../org/apache/tika/server/core/TikaServerCli.java |   33 +-
 .../apache/tika/server/core/TikaServerConfig.java  |  246 +--
 .../apache/tika/server/core/TikaServerProcess.java |  220 +--
 .../tika/server/core/TikaServerWatchDog.java       |   28 +-
 .../server/core/config/PasswordProviderConfig.java |    7 +-
 .../tika/server/core/resource/AsyncEmitter.java    |  141 --
 .../tika/server/core/resource/AsyncParser.java     |  139 --
 .../tika/server/core/resource/AsyncRequest.java    |    2 +-
 .../tika/server/core/resource/AsyncResource.java   |   60 +-
 .../tika/server/core/resource/EmitterResource.java |  276 ----
 .../tika/server/core/resource/PipesResource.java   |  155 ++
 .../core/resource/RecursiveMetadataResource.java   |   54 +-
 .../tika/server/core/resource/TikaDetectors.java   |    6 +-
 .../tika/server/core/resource/TikaMimeTypes.java   |    8 +-
 .../tika/server/core/resource/TikaParsers.java     |   12 +-
 .../tika/server/core/resource/TikaResource.java    |   74 +-
 .../tika/server/core/resource/TikaWelcome.java     |   21 +-
 .../server/core/resource/UnpackerResource.java     |   10 +-
 .../server/core/writer/CSVMessageBodyWriter.java   |   10 +-
 .../main/resources/tika-server-config-default.xml  |  156 +-
 .../org/apache/tika/server/core/CXFTestBase.java   |    5 +-
 .../tika/server/core/IntegrationTestBase.java      |    3 +-
 .../tika/server/core/LanguageResourceTest.java     |    2 +-
 .../server/core/RecursiveMetadataResourceTest.java |   64 +
 .../apache/tika/server/core/ServerStatusTest.java  |    2 +-
 .../apache/tika/server/core/StackTraceOffTest.java |    4 +-
 .../apache/tika/server/core/StackTraceTest.java    |    4 +-
 .../apache/tika/server/core/TikaEmitterTest.java   |  261 ---
 .../org/apache/tika/server/core/TikaPipesTest.java |  308 ++++
 .../core/TikaResourceMetadataFilterTest.java       |    2 +-
 .../tika/server/core/TikaResourceNoStackTest.java  |   21 +-
 .../apache/tika/server/core/TikaResourceTest.java  |  108 +-
 .../core/TikaServerAsyncIntegrationTest.java       |   79 +-
 .../tika/server/core/TikaServerConfigTest.java     |    7 +
 .../core/TikaServerEmitterIntegrationTest.java     |  270 ---
 .../server/core/TikaServerIntegrationTest.java     |   19 +-
 .../core/TikaServerPipesIntegrationTest.java       |  281 ++++
 .../apache/tika/server/core/TikaWelcomeTest.java   |    4 +-
 .../tika/server/core/TranslateResourceTest.java    |    2 +-
 .../resources/configs/metadata-filter-include.xml  |   10 +-
 .../configs/tika-config-server-badjvmargs.xml      |   26 +-
 .../resources/configs/tika-config-server-basic.xml |   26 +-
 .../configs/tika-config-server-emitter.xml         |   30 +-
 .../configs/tika-config-server-timeout-10000.xml   |   20 +-
 .../test/resources/configs/tika-config-server.xml  |   26 +-
 .../src/test/resources/log4j.properties            |   26 -
 .../src/test/resources/log4j2.properties           |   33 +
 .../{log4j_forked.xml => log4j2_forked.xml}        |    0
 tika-server/tika-server-standard/assembly.xml      |   46 +
 .../bin/init.d/tika                                |    0
 .../bin/install_tika_service.sh                    |    0
 .../bin/tika                                       |    0
 tika-server/tika-server-standard/bin/tika.in.sh    |   80 +
 tika-server/tika-server-standard/pom.xml           |  231 +++
 .../server/standard/config/PDFServerConfig.java    |   70 +
 .../standard/config/TesseractServerConfig.java     |   69 +
 .../standard/resource/XMPMetadataResource.java     |   69 +
 .../standard/writer/XMPMessageBodyWriter.java      |   70 +
 .../org.apache.tika.server.core.ParseContextConfig |   16 +
 ...he.tika.server.core.resource.TikaServerResource |   15 +
 ...apache.tika.server.core.writer.TikaServerWriter |   15 +
 .../src/main/resources/log4j2.properties           |   26 +
 .../tika/server/standard/DetectorResourceTest.java |   98 ++
 .../apache/tika/server/standard/FetcherTest.java   |  105 ++
 .../tika/server/standard/MetadataResourceTest.java |  231 +++
 .../standard/RecursiveMetadataFilterTest.java      |  101 ++
 .../standard/RecursiveMetadataResourceTest.java    |  381 +++++
 .../tika/server/standard/TikaDetectorsTest.java    |  138 ++
 .../tika/server/standard/TikaMimeTypesTest.java    |   87 +
 .../tika/server/standard/TikaParsersTest.java      |  191 +++
 .../tika/server/standard/TikaResourceTest.java     |  608 +++++++
 .../tika/server/standard/UnpackerResourceTest.java |  235 +++
 .../test/resources/config/TIKA-3137-include.xml    |   38 +
 .../config/tika-config-for-server-tests.xml        |    0
 .../resources/config/tika-config-url-fetcher.xml   |    0
 .../src/test/resources/log4j2.properties           |   25 +
 .../src/test/resources/test-documents/2exe.docx    |  Bin
 .../src/test/resources/test-documents/2pic.doc     |  Bin
 .../src/test/resources/test-documents/2pic.docx    |  Bin
 .../test-documents/CDEC_WEATHER_2010_03_02         |    0
 .../src/test/resources/test-documents/Doc1_ole.doc |  Bin
 .../src/test/resources/test-documents/foo.csv      |    0
 .../src/test/resources/test-documents/password.xls |  Bin
 .../src/test/resources/test-documents/pic.xls      |  Bin
 .../src/test/resources/test-documents/pic.xlsx     |  Bin
 .../src/test/resources/test-documents/test.doc     |  Bin
 .../test/resources/test-documents/testHTML.html    |    0
 .../src/test/resources/test-documents/testOCR.pdf  |  Bin
 .../test-documents/testPDFTwoTextBoxes.pdf         |  Bin
 .../test-documents/testPassword4Spaces.pdf         |  Bin
 .../testRTF_npeFromWMFInTikaServer.rtf             |    0
 .../test-documents/testUnicodePassword.pdf         |  Bin
 .../test-documents/test_recursive_embedded.docx    |  Bin
 tika-translate/pom.xml                             |   46 +-
 .../tika/language/translate/GoogleTranslator.java  |  128 +-
 .../tika/language/translate/MosesTranslator.java   |   16 +-
 .../tika/language/translate/RTGTranslator.java     |  142 ++
 .../org.apache.tika.language.translate.Translator  |    1 +
 .../tika/language/translate/RTGTranslatorTest.java |   64 +
 .../language/translate/YandexTranslatorTest.java   |   48 +-
 tika-xmp/pom.xml                                   |    4 +-
 .../main/java/org/apache/tika/xmp/XMPMetadata.java |    2 +-
 .../apache/tika/xmp/convert/GenericConverter.java  |    2 +-
 .../tika/xmp/convert/MSOfficeBinaryConverter.java  |    6 +-
 .../tika/xmp/convert/MSOfficeXMLConverter.java     |    6 +-
 .../tika/xmp/convert/OpenDocumentConverter.java    |    6 +-
 .../org/apache/tika/xmp/convert/RTFConverter.java  |    5 +-
 .../org/apache/tika/xmp/convert/TikaToXMP.java     |    2 +-
 2429 files changed, 79066 insertions(+), 77073 deletions(-)

diff --cc tika-bundles/tika-bundle-standard/pom.xml
index 0000000,17e5df7..c7ed3ff
mode 000000,100644..100644
--- a/tika-bundles/tika-bundle-standard/pom.xml
+++ b/tika-bundles/tika-bundle-standard/pom.xml
@@@ -1,0 -1,486 +1,489 @@@
+ <?xml version="1.0" encoding="UTF-8"?>
+ <!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+ 
+     http://www.apache.org/licenses/LICENSE-2.0
+ 
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.
+ -->
+ 
+ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+   <modelVersion>4.0.0</modelVersion>
+ 
+   <parent>
+     <groupId>org.apache.tika</groupId>
+     <artifactId>tika-bundles</artifactId>
+     <version>2.0.0-SNAPSHOT</version>
+     <relativePath>../pom.xml</relativePath>
+   </parent>
+ 
+   <artifactId>tika-bundle-standard</artifactId>
+   <version>2.0.0-SNAPSHOT</version>
+   <packaging>bundle</packaging>
+   <name>Apache Tika OSGi standard bundle</name>
+ 
+   <description>
+     OSGi bundle that contains the tika-parsers-standard component and all its
+     upstream dependencies that aren't OSGI bundles by themselves. This
+     bundle exports no packages, only the Parser and Detector services
+     from the tika-parsers component.
+   </description>
+   <url>https://tika.apache.org/</url>
+ 
+   <properties>
+     <!-- some conflict with slf4j with 4.12.0
+         causes failure in testForkParser -->
+     <pax.exam.version>4.11.0</pax.exam.version>
+   </properties>
+ 
+   <dependencies>
+     <dependency>
+       <groupId>${project.groupId}</groupId>
+       <artifactId>tika-core</artifactId>
+       <version>${project.version}</version>
+     </dependency>
+     <dependency>
+       <groupId>${project.groupId}</groupId>
+       <artifactId>tika-parsers-standard-package</artifactId>
+       <version>${project.version}</version>
+     </dependency>
+ 
+     <!-- Test dependencies -->
+     <dependency>
+       <groupId>junit</groupId>
+       <artifactId>junit</artifactId>
+       <scope>test</scope>
+     </dependency>
+     <dependency>
+       <groupId>org.ops4j.pax.exam</groupId>
+       <artifactId>pax-exam-junit4</artifactId>
+       <version>${pax.exam.version}</version>
+       <scope>test</scope>
+       <exclusions>
+         <exclusion>
+           <groupId>org.ops4j.base</groupId>
+           <artifactId>ops4j-base-store</artifactId>
+         </exclusion>
+         <exclusion>
+           <groupId>org.ops4j.base</groupId>
+           <artifactId>ops4j-base-lang</artifactId>
+         </exclusion>
+       </exclusions>
+     </dependency>
+     <dependency>
+       <groupId>org.ops4j.pax.exam</groupId>
+       <artifactId>pax-exam-container-native</artifactId>
+       <version>${pax.exam.version}</version>
+       <exclusions>
+         <exclusion>
+           <groupId>org.ops4j.base</groupId>
+           <artifactId>ops4j-base-util-property</artifactId>
+         </exclusion>
+         <exclusion>
+           <groupId>org.ops4j.base</groupId>
+           <artifactId>ops4j-base-lang</artifactId>
+         </exclusion>
+       </exclusions>
+       <scope>test</scope>
+     </dependency>
+     <dependency>
+       <groupId>org.ops4j.base</groupId>
+       <artifactId>ops4j-base-util-property</artifactId>
+       <version>1.5.1</version>
+       <scope>test</scope>
+     </dependency>
+     <dependency>
+       <groupId>org.ops4j.base</groupId>
+       <artifactId>ops4j-base-lang</artifactId>
+       <version>1.5.1</version>
+       <scope>test</scope>
+     </dependency>
+     <dependency>
+       <groupId>org.apache.felix</groupId>
+       <artifactId>org.apache.felix.framework</artifactId>
+       <version>5.6.10</version>
+       <scope>test</scope>
+     </dependency>
+     <dependency>
+       <groupId>org.ops4j.pax.exam</groupId>
+       <artifactId>pax-exam-link-assembly</artifactId>
+       <version>${pax.exam.version}</version>
+       <scope>test</scope>
+     </dependency>
+     <dependency>
+       <groupId>org.ops4j.pax.url</groupId>
+       <artifactId>pax-url-aether</artifactId>
+       <version>2.5.4</version>
+       <scope>test</scope>
+     </dependency>
+     <dependency>
+       <groupId>javax.inject</groupId>
+       <artifactId>javax.inject</artifactId>
+       <version>1</version>
+       <scope>test</scope>
+     </dependency>
+     <dependency>
+       <groupId>org.osgi</groupId>
+       <artifactId>org.osgi.core</artifactId>
+       <version>${osgi.core.version}</version>
+       <scope>test</scope>
+     </dependency>
+ 
+     <!-- use non-log4j slf4j backend to prevent main classloader from loading log4j classes -->
+     <dependency>
+       <groupId>org.slf4j</groupId>
+       <artifactId>slf4j-simple</artifactId>
+       <scope>test</scope>
+     </dependency>
+ 
+     <dependency>
+       <groupId>org.glassfish.jaxb</groupId>
+       <artifactId>jaxb-runtime</artifactId>
+       <version>${jaxb.version}</version>
+       <scope>test</scope>
+     </dependency>
+     <dependency>
+       <groupId>com.sun.activation</groupId>
+       <artifactId>javax.activation</artifactId>
+       <version>1.2.0</version>
+     </dependency>
+     <dependency>
+       <groupId>com.sun.xml.fastinfoset</groupId>
+       <artifactId>FastInfoset</artifactId>
+       <version>1.2.16</version>
+       <scope>test</scope>
+     </dependency>
+   </dependencies>
+ 
+   <build>
+     <plugins>
+       <plugin>
+         <groupId>org.apache.felix</groupId>
+         <artifactId>maven-bundle-plugin</artifactId>
+         <version>${maven.bundle.version}</version>
+         <extensions>true</extensions>
+         <configuration>
+           <instructions>
+             <_runsystempackages>com.sun.xml.bind.marshaller, com.sun.xml.internal.bind.marshaller</_runsystempackages>
+             <!--  The file below and the _include entry may be removed once Tika targets OpenJDK 9.0 or above -->
+             <_include>src/main/resources/META-INF/MANIFEST.MF</_include>
+             <Bundle-Activator>
+               org.apache.tika.parser.internal.Activator
+             </Bundle-Activator>
+             <Embed-Dependency>*;scope=compile;artifactId=tika-parsers-standard-package|
+               javax.activation|
+               xerces|
+               xercesImpl|
+               commons-compress|
+               xz|
+               commons-codec|
+               commons-csv|
+               commons-io|
+               commons-exec|
+               commons-collections4|
+               dd-plist|
+               junrar|
+               pdfbox|
+               pdfbox-tools|
+               pdfbox-debugger|
+               pdfbox-preflight|
+               fontbox|
+               jempbox|
++              picocli|
+               bcmail-jdk15on|
+               bcprov-jdk15on|
+               bcpkix-jdk15on|
+               poi|poi-scratchpad|
+               poi-ooxml|
+               poi-ooxml-schemas|
+               commons-math3|
+               curvesapi|
+               xmlbeans|
+               jackcess|
+               jackcess-encrypt|
+               commons-lang3|
+               tagsoup|
+               asm|
+               juniversalchardet|
+               vorbis-java-core|
+               vorbis-java-tika|
+               isoparser|
+               metadata-extractor|
+               xmpcore-shaded|
+               json-simple|
+               boilerpipe|
+               rome|
+               rome-utils|
+               jdom2|
+               sentiment-analysis-parser|
+               opennlp-tools|
+               geoapi|
+               sis-metadata|
+               sis-netcdf|
+               sis-utility|
+               sis-storage|
+               unit-api|
+               apache-mime4j-core|
+               apache-mime4j-dom|
+               jhighlight|
+               java-libpst|
+               netcdf4|
+               grib|
+               cdm|
+               parso|
+               httpservices|
+               jcip-annotations|
+               jmatio|
+               guava|
+               age-predictor-api|
+               SparseBitSet
+             </Embed-Dependency>
+             <Embed-Transitive>true</Embed-Transitive>
+             <Bundle-DocURL>${project.url}</Bundle-DocURL>
+             <Export-Package>
+               !org.apache.tika.parser,
+               !org.apache.tika.parser.external,
+               org.apache.tika.parser.*
+             </Export-Package>
+             <Import-Package>
+               !org.junit,
+               !org.junit.*,
+               !junit.*,
+               org.apache.tika.detect,
+               org.apache.tika.mime,
+               org.apache.tika.fork,
+               org.apache.commons.io,
+               android.util;resolution:=optional,
+               com.adobe.xmp;resolution:=optional,
+               com.adobe.xmp.impl;resolution:=optional,
+               com.adobe.xmp.options;resolution:=optional,
+               com.dd.plist;resolution:=optional,
+               com.adobe.xmp.properties;resolution:=optional,
+               com.github.luben.zstd;resolution:=optional,
+               com.github.jaiimageio.*;resolution:=optional,
+               com.google.common.util.concurrent.internal;resolution:=optional,
+               com.google.errorprone.annotations;resolution:=optional,
+               com.google.errorprone.annotations.concurrent;resolution:=optional,
+               com.google.protobuf;resolution:=optional,
+               com.ibm.icu.text;resolution:=optional,
+               com.parso;resolution:=optional,
+               com.sleepycat.je;resolution:=optional,
+               com.sun.javadoc;resolution:=optional,
+               com.sun.xml.bind.marshaller;resolution:=optional,
+               com.sun.xml.internal.bind.marshaller;resolution:=optional,
+               com.sun.msv.datatype;resolution:=optional,
+               com.sun.msv.datatype.xsd;resolution:=optional,
+               com.sun.tools.javadoc;resolution:=optional,
++              groovy.lang;resolution:=optional,
+               javax.annotation;resolution:=optional,
+               javax.mail;resolution:=optional,
+               javax.mail.internet;resolution:=optional,
+               javax.net.ssl;resolution:=optional,
+               javax.servlet.annotation;resolution:=optional,
+               javax.servlet;resolution:=optional,
+               javax.servlet.http;resolution:=optional,
+               javax.measure.converter;resolution:=optional,
+               javax.ws.rs.core;resolution:=optional,
+               javax.xml.bind;resolution:=optional,
+               javax.xml.bind.annotation;resolution:=optional,
+               javax.xml.bind.annotation.adapters;resolution:=optional,
+               javax.xml.bind.attachment;resolution:=optional,
+               javax.xml.bind.helpers;resolution:=optional,
+               javax.xml.bind.util;resolution:=optional,
+               net.sf.saxon;resolution:=optional,
+               net.sf.saxon.dom;resolution:=optional,
+               net.sf.saxon.om;resolution:=optional,
+               net.sf.saxon.query;resolution:=optional,
+               net.sf.saxon.sxpath;resolution:=optional,
+               net.sf.saxon.value;resolution:=optional,
+               org.apache.batik.anim.dom;resolution:=optional,
+               org.apache.batik.bridge;resolution:=optional,
+               org.apache.batik.ext.awt;resolution:=optional,
+               org.apache.batik.ext.awt.image.renderable;resolution:=optional,
+               org.apache.batik.gvt;resolution:=optional,
+               org.apache.batik.util;resolution:=optional,
+               org.apache.commons.exec;resolution:=optional,
+               org.apache.jcp.xml.dsig.internal.dom;resolution:=optional,
+               org.apache.pdfbox.debugger;resolution:=optional,
+               org.apache.pdfbox.preflight.*;resolution:=optional,
+               org.apache.tools.ant;resolution:=optional,
+               org.apache.tools.ant.taskdefs;resolution:=optional,
+               org.apache.tools.ant.types;resolution:=optional,
+               org.apache.xerces.parsers;resolution:=optional,
+               org.apache.xerces.util;resolution:=optional,
+               org.apache.xerces.xni;resolution:=optional,
+               org.apache.xerces.xni.parser;resolution:=optional,
+               org.apache.xml.resolver;resolution:=optional,
+               org.apache.xml.resolver.readers;resolution:=optional,
+               org.w3c.dom.ranges;resolution:=optional,
+               org.w3c.dom.traversal;resolution:=optional,
+               sun.io;resolution:=optional,
+               org.apache.xml.resolver.tools;resolution:=optional,
+               org.apache.xml.security;resolution:=optional,
+               org.apache.xml.security.c14n;resolution:=optional,
+               org.apache.xml.security.signature;resolution:=optional,
+               org.apache.xml.security.utils;resolution:=optional,
+               org.apache.xmlbeans.impl.xpath.saxon;resolution:=optional,
+               org.apache.xmlbeans.impl.xquery.saxon;resolution:=optional,
+               org.bouncycastle.cert;resolution:=optional,
+               org.bouncycastle.cert.jcajce;resolution:=optional,
+               org.bouncycastle.cert.ocsp;resolution:=optional,
+               org.bouncycastle.cms.bc;resolution:=optional,
+               org.bouncycastle.operator;resolution:=optional,
+               org.bouncycastle.operator.bc;resolution:=optional,
+               org.bouncycastle.tsp;resolution:=optional,
+               org.brotli.dec;resolution:=optional,
+               org.cyberneko.html.xercesbridge;resolution:=optional,
+               org.etsi.uri.x01903.v14;resolution:=optional,
++              org.fusesource.jansi;resolution:=optional,
+               org.jaxen;resolution:=optional,
+               org.jaxen.dom4j;resolution:=optional,
+               org.jaxen.pattern;resolution:=optional,
+               org.jaxen.saxpath;resolution:=optional,
+               org.jaxen.util;resolution:=optional,
+               org.openxmlformats.schemas.officeDocument.x2006.math;resolution:=optional,
+               org.openxmlformats.schemas.schemaLibrary.x2006.main;resolution:=optional,
+               org.osgi.framework;resolution:=optional,
+               org.quartz;resolution:=optional,
+               org.quartz.impl;resolution:=optional,
+               org.slf4j;resolution:=optional,
+               org.slf4j.helpers;resolution:=optional,
+               org.w3c.dom;resolution:=optional,
+               org.xml.sax;resolution:=optional,
+               org.xml.sax.ext;resolution:=optional,
+               org.xml.sax.helpers;resolution:=optional,
+               com.microsoft.schemas.office.powerpoint;resolution:=optional,
+               com.microsoft.schemas.office.word;resolution:=optional,
+               sun.java2d.cmm.kcms;resolution:=optional,
+               sun.misc;resolution:=optional,
+               com.jmatio.io;resolution:=optional,
+               colorspace;resolution:=optional,
+               com.sun.jna;resolution:=optional,
+               com.sun.jna.ptr;resolution:=optional,
+               icc;resolution:=optional,
+               jj2000.j2k.codestream;resolution:=optional,
+               jj2000.j2k.codestream.reader;resolution:=optional,
+               jj2000.j2k.decoder;resolution:=optional,
+               jj2000.j2k.entropy.decoder;resolution:=optional,
+               jj2000.j2k.fileformat.reader;resolution:=optional,
+               jj2000.j2k.image;resolution:=optional,
+               jj2000.j2k.image.invcomptransf;resolution:=optional,
+               jj2000.j2k.image.output;resolution:=optional,
+               jj2000.j2k.io;resolution:=optional,
+               jj2000.j2k.quantization.dequantizer;resolution:=optional,
+               jj2000.j2k.roi;resolution:=optional,
+               jj2000.j2k.util;resolution:=optional,
+               jj2000.j2k.wavelet.synthesis;resolution:=optional,
+               org.itadaki.bzip2;resolution:=optional,
+               org.jsoup;resolution:=optional,
+               org.jsoup.nodes;resolution:=optional,
+               org.jsoup.select;resolution:=optional,
+               thredds.featurecollection;resolution:=optional,
+               com.beust.jcommander;resolution:=optional,
+               com.google.common.base;resolution:=optional,
+               com.google.common.math;resolution:=optional,
+               sun.reflect.generics.reflectiveObjects;resolution:=optional,
+               org.apache.commons.logging;resolution:=optional,
+               org.apache.log4j;resolution:=optional,
+               *
+             </Import-Package>
+           </instructions>
+           <createDependencyReducedPom>true</createDependencyReducedPom>
+         </configuration>
+       </plugin>
+ 
+       <!-- The Tika Bundle has no java code of its own, so no need to do -->
+       <!--  any forbidden API checking against it (it gets confused...) -->
+       <plugin>
+         <groupId>de.thetaphi</groupId>
+         <artifactId>forbiddenapis</artifactId>
+         <version>${forbiddenapis.version}</version>
+         <configuration>
+           <skip>true</skip>
+         </configuration>
+       </plugin>
+ 
+       <plugin>
+         <artifactId>maven-assembly-plugin</artifactId>
+         <executions>
+           <execution>
+             <phase>pre-integration-test</phase>
+             <goals>
+               <goal>single</goal>
+             </goals>
+             <configuration>
+               <descriptors>
+                 <descriptor>test-bundles.xml</descriptor>
+               </descriptors>
+               <finalName>test</finalName>
+               <attach>false</attach>
+             </configuration>
+           </execution>
+         </executions>
+       </plugin>
+ 
+       <plugin>
+         <artifactId>maven-failsafe-plugin</artifactId>
+         <version>${maven.failsafe.version}</version>
+         <executions>
+           <execution>
+             <goals>
+               <goal>integration-test</goal>
+               <goal>verify</goal>
+             </goals>
+           </execution>
+         </executions>
+         <configuration>
+           <additionalClasspathElements>
+             <additionalClasspathElement>${project.build.directory}/test-bundles/jdk9plus</additionalClasspathElement>
+           </additionalClasspathElements>
+           <systemPropertyVariables>
+             <org.ops4j.pax.logging.DefaultServiceLog.level>
+               INFO
+             </org.ops4j.pax.logging.DefaultServiceLog.level>
+           </systemPropertyVariables>
+           <classpathDependencyExcludes>
+             <classpathDependencyExclude>xerces:xercesImpl</classpathDependencyExclude>
+           </classpathDependencyExcludes>
+         </configuration>
+       </plugin>
+       <plugin>
+         <groupId>org.apache.rat</groupId>
+         <artifactId>apache-rat-plugin</artifactId>
+         <version>${rat.version}</version>
+         <configuration>
+           <excludes>
+             <exclude>src/main/resources/META-INF/MANIFEST.MF</exclude>
+             <exclude>dependency-reduced-pom.xml</exclude>
+           </excludes>
+         </configuration>
+       </plugin>
+     </plugins>
+   </build>
+ 
+   <organization>
+     <name>The Apache Software Founation</name>
+     <url>http://www.apache.org</url>
+   </organization>
+   <issueManagement>
+     <system>JIRA</system>
+     <url>https://issues.apache.org/jira/browse/TIKA</url>
+   </issueManagement>
+   <ciManagement>
+     <system>Jenkins</system>
+     <url>https://builds.apache.org/job/Tika-trunk/</url>
+   </ciManagement>
+ </project>
+ 
+ 
diff --cc tika-parent/pom.xml
index fc76aed,3656ced..43d9f2e
--- a/tika-parent/pom.xml
+++ b/tika-parent/pom.xml
@@@ -333,8 -334,8 +334,8 @@@
      <mockito.version>3.7.7</mockito.version>
      <netcdf-java.version>4.5.5</netcdf-java.version>
      <opencsv.version>2.3</opencsv.version>
 -    <pdfbox.version>2.0.23</pdfbox.version>
 +    <pdfbox.version>3.0.0-SNAPSHOT</pdfbox.version>
-     <objenesis.version>3.1</objenesis.version>
+     <objenesis.version>3.2</objenesis.version>
      <openjson.version>1.0.12</openjson.version>
      <opennlp.version>1.9.3</opennlp.version>
      <optimaize.version>0.6</optimaize.version>
diff --cc tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/AbstractPDF2XHTML.java
index 0000000,3170885..10f9c0a
mode 000000,100644..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
@@@ -1,0 -1,1087 +1,1088 @@@
+ /*
+  * Licensed to the Apache Software Foundation (ASF) under one or more
+  * contributor license agreements.  See the NOTICE file distributed with
+  * this work for additional information regarding copyright ownership.
+  * The ASF licenses this file to You under the Apache License, Version 2.0
+  * (the "License"); you may not use this file except in compliance with
+  * the License.  You may obtain a copy of the License at
+  *
+  *     http://www.apache.org/licenses/LICENSE-2.0
+  *
+  * Unless required by applicable law or agreed to in writing, software
+  * distributed under the License is distributed on an "AS IS" BASIS,
+  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  * See the License for the specific language governing permissions and
+  * limitations under the License.
+  */
+ package org.apache.tika.parser.pdf;
+ 
+ import static org.apache.tika.parser.pdf.PDFParserConfig.OCR_STRATEGY.AUTO;
+ import static org.apache.tika.parser.pdf.PDFParserConfig.OCR_STRATEGY.NO_OCR;
+ import static org.apache.tika.parser.pdf.PDFParserConfig.OCR_STRATEGY.OCR_AND_TEXT_EXTRACTION;
+ import static org.apache.tika.parser.pdf.PDFParserConfig.OCR_STRATEGY.OCR_ONLY;
+ 
+ import java.awt.image.BufferedImage;
+ import java.io.BufferedInputStream;
+ import java.io.ByteArrayInputStream;
+ import java.io.IOException;
+ import java.io.InputStream;
+ import java.io.OutputStream;
+ import java.lang.reflect.InvocationTargetException;
+ import java.lang.reflect.Method;
+ import java.nio.charset.StandardCharsets;
+ import java.nio.file.Files;
+ import java.nio.file.Path;
+ import java.text.SimpleDateFormat;
+ import java.util.ArrayList;
+ import java.util.Calendar;
+ import java.util.Collections;
+ import java.util.HashMap;
+ import java.util.HashSet;
+ import java.util.List;
+ import java.util.ListIterator;
+ import java.util.Locale;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.TreeMap;
+ import javax.xml.stream.XMLStreamException;
+ 
+ import org.apache.commons.io.IOUtils;
+ import org.apache.pdfbox.cos.COSDictionary;
+ import org.apache.pdfbox.cos.COSName;
+ import org.apache.pdfbox.pdmodel.PDDocument;
+ import org.apache.pdfbox.pdmodel.PDDocumentCatalog;
+ import org.apache.pdfbox.pdmodel.PDDocumentNameDictionary;
+ import org.apache.pdfbox.pdmodel.PDEmbeddedFilesNameTreeNode;
+ import org.apache.pdfbox.pdmodel.PDPage;
+ import org.apache.pdfbox.pdmodel.PDPageTree;
+ import org.apache.pdfbox.pdmodel.common.PDDestinationOrAction;
+ import org.apache.pdfbox.pdmodel.common.PDNameTreeNode;
+ import org.apache.pdfbox.pdmodel.common.filespecification.PDComplexFileSpecification;
+ import org.apache.pdfbox.pdmodel.common.filespecification.PDEmbeddedFile;
+ import org.apache.pdfbox.pdmodel.common.filespecification.PDFileSpecification;
+ import org.apache.pdfbox.pdmodel.common.filespecification.PDSimpleFileSpecification;
+ import org.apache.pdfbox.pdmodel.font.PDFont;
+ import org.apache.pdfbox.pdmodel.interactive.action.PDAction;
+ import org.apache.pdfbox.pdmodel.interactive.action.PDActionImportData;
+ import org.apache.pdfbox.pdmodel.interactive.action.PDActionJavaScript;
+ import org.apache.pdfbox.pdmodel.interactive.action.PDActionLaunch;
+ import org.apache.pdfbox.pdmodel.interactive.action.PDActionRemoteGoTo;
+ import org.apache.pdfbox.pdmodel.interactive.action.PDActionURI;
+ import org.apache.pdfbox.pdmodel.interactive.action.PDAnnotationAdditionalActions;
+ import org.apache.pdfbox.pdmodel.interactive.action.PDDocumentCatalogAdditionalActions;
+ import org.apache.pdfbox.pdmodel.interactive.action.PDFormFieldAdditionalActions;
+ import org.apache.pdfbox.pdmodel.interactive.action.PDPageAdditionalActions;
+ import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation;
+ import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationFileAttachment;
+ import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationMarkup;
+ import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationWidget;
+ import org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature;
+ import org.apache.pdfbox.pdmodel.interactive.documentnavigation.outline.PDDocumentOutline;
+ import org.apache.pdfbox.pdmodel.interactive.documentnavigation.outline.PDOutlineItem;
+ import org.apache.pdfbox.pdmodel.interactive.documentnavigation.outline.PDOutlineNode;
+ import org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm;
+ import org.apache.pdfbox.pdmodel.interactive.form.PDField;
+ import org.apache.pdfbox.pdmodel.interactive.form.PDNonTerminalField;
+ import org.apache.pdfbox.pdmodel.interactive.form.PDSignatureField;
+ import org.apache.pdfbox.pdmodel.interactive.form.PDXFAResource;
+ import org.apache.pdfbox.rendering.PDFRenderer;
+ import org.apache.pdfbox.text.PDFTextStripper;
+ import org.apache.pdfbox.tools.imageio.ImageIOUtil;
+ import org.apache.pdfbox.util.Matrix;
+ import org.apache.pdfbox.util.Vector;
+ import org.xml.sax.ContentHandler;
+ import org.xml.sax.SAXException;
+ import org.xml.sax.helpers.AttributesImpl;
+ 
+ import org.apache.tika.exception.TikaException;
+ import org.apache.tika.exception.WriteLimitReachedException;
+ import org.apache.tika.extractor.EmbeddedDocumentExtractor;
+ import org.apache.tika.extractor.EmbeddedDocumentUtil;
+ import org.apache.tika.io.TemporaryResources;
+ import org.apache.tika.io.TikaInputStream;
+ import org.apache.tika.metadata.Font;
+ import org.apache.tika.metadata.Metadata;
+ import org.apache.tika.metadata.PDF;
+ import org.apache.tika.metadata.TikaCoreProperties;
+ import org.apache.tika.mime.MediaType;
+ import org.apache.tika.parser.ParseContext;
+ import org.apache.tika.parser.Parser;
+ import org.apache.tika.sax.BodyContentHandler;
+ import org.apache.tika.sax.EmbeddedContentHandler;
+ import org.apache.tika.sax.XHTMLContentHandler;
+ import org.apache.tika.utils.ExceptionUtils;
+ 
+ class AbstractPDF2XHTML extends PDFTextStripper {
+ 
+     public static final String XMP_DOCUMENT_CATALOG_LOCATION = "documentCatalog";
+ 
+     public static final String XMP_PAGE_LOCATION_PREFIX = "page ";
+     /**
+      * Maximum recursive depth to prevent cycles/recursion bombs.
+      * This applies to AcroForm processing and processing
+      * the embedded document tree.
+      */
+     private final static int MAX_RECURSION_DEPTH = 100;
+     private static final MediaType XFA_MEDIA_TYPE = MediaType.application("vnd.adobe.xdp+xml");
+     private static final MediaType XMP_MEDIA_TYPE = MediaType.application("rdf+xml");
+     final List<IOException> exceptions = new ArrayList<>();
+     final PDDocument pdDocument;
+     final XHTMLContentHandler xhtml;
+     final ParseContext context;
+     final Metadata metadata;
+     final EmbeddedDocumentExtractor embeddedDocumentExtractor;
+     final PDFParserConfig config;
+     final Parser ocrParser;
+     /**
+      * Format used for signature dates
+      * TODO Make this thread-safe
+      */
+     private final SimpleDateFormat dateFormat =
+             new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ", Locale.ROOT);
+     private final Set<String> fontNames = new HashSet<>();
+     //zero-based pageIndex
+     int pageIndex = 0;
+     int startPage = -1;
+     //private in PDFTextStripper...must have own copy because we override processpages
+     int unmappedUnicodeCharsPerPage = 0;
+     int totalCharsPerPage = 0;
+ 
+     AbstractPDF2XHTML(PDDocument pdDocument, ContentHandler handler, ParseContext context,
+                       Metadata metadata, PDFParserConfig config) throws IOException {
+         this.pdDocument = pdDocument;
+         this.xhtml = new XHTMLContentHandler(handler, metadata);
+         this.context = context;
+         this.metadata = metadata;
+         this.config = config;
+         embeddedDocumentExtractor = EmbeddedDocumentUtil.getEmbeddedDocumentExtractor(context);
+         if (config.getOcrStrategy() == NO_OCR) {
+             ocrParser = null;
+         } else {
+             ocrParser = EmbeddedDocumentUtil.getStatelessParser(context);
+         }
+     }
+ 
+     private static void addNonNullAttribute(String name, String value, AttributesImpl attributes) {
+         if (name == null || value == null) {
+             return;
+         }
+         attributes.addAttribute("", name, name, "CDATA", value);
+     }
+ 
+     private static PDActionURI getActionURI(PDAnnotation annot) {
+         //copied and pasted from PDFBox's PrintURLs
+ 
+         // use reflection to catch all annotation types that have getAction()
+         // If you can't use reflection, then check for classes
+         // PDAnnotationLink and PDAnnotationWidget, and call getAction() and check for a
+         // PDActionURI result type
+         try {
+             Method actionMethod = annot.getClass().getDeclaredMethod("getAction");
+             if (actionMethod.getReturnType().equals(PDAction.class)) {
+                 PDAction action = (PDAction) actionMethod.invoke(annot);
+                 if (action instanceof PDActionURI) {
+                     return (PDActionURI) action;
+                 }
+             }
+         } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
+             //swallow
+         }
+         return null;
+     }
+ 
+     @Override
+     protected void startPage(PDPage page) throws IOException {
+         try {
+             xhtml.startElement("div", "class", "page");
+         } catch (SAXException e) {
+             throw new IOException("Unable to start a page", e);
+         }
+         writeParagraphStart();
+     }
+ 
+     private void extractXMPXFA(PDDocument pdfDocument, Metadata parentMetadata,
+                                ParseContext context) throws IOException, SAXException {
+         Set<MediaType> supportedTypes = Collections.EMPTY_SET;
+         Parser embeddedParser = context.get(Parser.class);
+         if (embeddedParser != null) {
+             supportedTypes = embeddedParser.getSupportedTypes(context);
+         }
+ 
+         if (supportedTypes == null || supportedTypes.size() == 0) {
+             return;
+         }
+ 
+         if (supportedTypes.contains(XMP_MEDIA_TYPE)) {
+             //try the main metadata
+             if (pdfDocument.getDocumentCatalog().getMetadata() != null) {
+                 try (InputStream is = pdfDocument.getDocumentCatalog().getMetadata()
+                         .exportXMPMetadata()) {
+                     extractXMPAsEmbeddedFile(is, XMP_DOCUMENT_CATALOG_LOCATION);
+                 } catch (IOException e) {
+                     EmbeddedDocumentUtil.recordEmbeddedStreamException(e, parentMetadata);
+                 }
+             }
+             //now iterate through the pages
+             int pageNumber = 1;
+             for (PDPage page : pdfDocument.getPages()) {
+                 if (page.getMetadata() != null) {
+                     try (InputStream is = page.getMetadata().exportXMPMetadata()) {
+                         extractXMPAsEmbeddedFile(is, XMP_PAGE_LOCATION_PREFIX + pageNumber);
+                     } catch (IOException e) {
+                         EmbeddedDocumentUtil.recordEmbeddedStreamException(e, parentMetadata);
+                     }
+                 }
+                 pageNumber++;
+             }
+         }
+ 
+         //now try the xfa
+         if (pdfDocument.getDocumentCatalog().getAcroForm(null) != null &&
+                 pdfDocument.getDocumentCatalog().getAcroForm(null).getXFA() != null) {
+ 
+             Metadata xfaMetadata = new Metadata();
+             xfaMetadata.set(Metadata.CONTENT_TYPE, XFA_MEDIA_TYPE.toString());
+             xfaMetadata.set(TikaCoreProperties.EMBEDDED_RESOURCE_TYPE,
+                     TikaCoreProperties.EmbeddedResourceType.METADATA.toString());
+             if (embeddedDocumentExtractor.shouldParseEmbedded(xfaMetadata) &&
+                     supportedTypes.contains(XFA_MEDIA_TYPE)) {
+                 byte[] bytes = null;
+                 try {
+                     bytes = pdfDocument.getDocumentCatalog().getAcroForm(null).getXFA().getBytes();
+                 } catch (IOException e) {
+                     EmbeddedDocumentUtil.recordEmbeddedStreamException(e, parentMetadata);
+                 }
+                 if (bytes != null) {
+                     try (InputStream is = new ByteArrayInputStream(bytes)) {
+                         parseMetadata(is, xfaMetadata);
+                     }
+                 }
+             }
+         }
+     }
+ 
+     private void extractXMPAsEmbeddedFile(InputStream is, String location)
+             throws IOException, SAXException {
+         if (is == null) {
+             return;
+         }
+         Metadata xmpMetadata = new Metadata();
+         xmpMetadata.set(Metadata.CONTENT_TYPE, XMP_MEDIA_TYPE.toString());
+         xmpMetadata.set(TikaCoreProperties.EMBEDDED_RESOURCE_TYPE,
+                 TikaCoreProperties.EmbeddedResourceType.METADATA.toString());
+         xmpMetadata.set(PDF.XMP_LOCATION, location);
+         if (embeddedDocumentExtractor.shouldParseEmbedded(xmpMetadata)) {
+             try {
+                 parseMetadata(is, xmpMetadata);
+             } finally {
+                 IOUtils.closeQuietly(is);
+             }
+         }
+ 
+     }
+ 
+     private void parseMetadata(InputStream stream, Metadata embeddedMetadata)
+             throws IOException, SAXException {
+         try {
+             embeddedDocumentExtractor
+                     .parseEmbedded(stream, new EmbeddedContentHandler(xhtml), embeddedMetadata,
+                             false);
+         } catch (IOException e) {
+             handleCatchableIOE(e);
+         }
+     }
+ 
+     private void extractEmbeddedDocuments(PDDocument document)
+             throws IOException, SAXException, TikaException {
+         PDDocumentNameDictionary namesDictionary =
+                 new PDDocumentNameDictionary(document.getDocumentCatalog());
+         PDEmbeddedFilesNameTreeNode efTree = namesDictionary.getEmbeddedFiles();
+         if (efTree == null) {
+             return;
+         }
+ 
+         Map<String, PDComplexFileSpecification> embeddedFileNames = new HashMap<>();
+         int depth = 0;
+         //recursively find embedded files
+         extractFilesfromEFTree(efTree, embeddedFileNames, depth);
+         processEmbeddedDocNames(embeddedFileNames);
+ 
+     }
+ 
+     private void extractFilesfromEFTree(PDNameTreeNode efTree, Map<String,
+             PDComplexFileSpecification> embeddedFileNames, int depth) throws IOException {
+         if (depth > MAX_RECURSION_DEPTH) {
+             throw new IOException("Hit max recursion depth");
+         }
+         Map<String, PDComplexFileSpecification> names = null;
+         try {
+             names = efTree.getNames();
+         } catch (IOException e) {
+             //LOG?
+         }
+         if (names != null) {
+             for (Map.Entry<String, PDComplexFileSpecification> e : names.entrySet()) {
+                 embeddedFileNames.put(e.getKey(), e.getValue());
+             }
+         }
+ 
+         List<PDNameTreeNode<PDComplexFileSpecification>> kids = efTree.getKids();
+         if (kids == null) {
+             return;
+         } else {
+             for (PDNameTreeNode<PDComplexFileSpecification> node : kids) {
+                 extractFilesfromEFTree(node, embeddedFileNames, depth + 1);
+             }
+         }
+     }
+ 
+     private void processDoc(String name, PDFileSpecification spec, AttributesImpl attributes)
+             throws TikaException, SAXException, IOException {
+         if (spec instanceof PDSimpleFileSpecification) {
+             attributes.addAttribute("", "class", "class", "CDATA", "linked");
+             attributes.addAttribute("", "id", "id", "CDATA", spec.getFile());
+             xhtml.startElement("div", attributes);
+             xhtml.endElement("div");
+         } else if (spec instanceof PDComplexFileSpecification) {
+             if (attributes.getIndex("source") < 0) {
+                 attributes.addAttribute("", "source", "source", "CDATA", "attachment");
+             }
+             extractMultiOSPDEmbeddedFiles(name, (PDComplexFileSpecification) spec, attributes);
+         }
+     }
+ 
+     private void processEmbeddedDocNames(Map<String, PDComplexFileSpecification> embeddedFileNames)
+             throws IOException, SAXException, TikaException {
+         if (embeddedFileNames == null || embeddedFileNames.isEmpty()) {
+             return;
+         }
+ 
+         for (Map.Entry<String, PDComplexFileSpecification> ent : embeddedFileNames.entrySet()) {
+             processDoc(ent.getKey(), ent.getValue(), new AttributesImpl());
+         }
+     }
+ 
+     private void extractMultiOSPDEmbeddedFiles(String displayName, PDComplexFileSpecification spec,
+                                                AttributesImpl attributes)
+             throws IOException, SAXException, TikaException {
+ 
+         if (spec == null) {
+             return;
+         }
+         //current strategy is to pull all, not just first non-null
+         extractPDEmbeddedFile(displayName, spec.getFileUnicode(), spec.getFile(),
+                 spec.getEmbeddedFile(), attributes);
+         extractPDEmbeddedFile(displayName, spec.getFileUnicode(), spec.getFileMac(),
+                 spec.getEmbeddedFileMac(), attributes);
+         extractPDEmbeddedFile(displayName, spec.getFileUnicode(), spec.getFileDos(),
+                 spec.getEmbeddedFileDos(), attributes);
+         extractPDEmbeddedFile(displayName, spec.getFileUnicode(), spec.getFileUnix(),
+                 spec.getEmbeddedFileUnix(), attributes);
+     }
+ 
+     private void extractPDEmbeddedFile(String displayName, String unicodeFileName, String fileName,
+                                        PDEmbeddedFile file, AttributesImpl attributes)
+             throws SAXException, IOException, TikaException {
+ 
+         if (file == null) {
+             //skip silently
+             return;
+         }
+ 
+         fileName = (fileName == null || "".equals(fileName.trim())) ? unicodeFileName : fileName;
+         fileName = (fileName == null || "".equals(fileName.trim())) ? displayName : fileName;
+ 
+         // TODO: other metadata?
+         Metadata embeddedMetadata = new Metadata();
+         embeddedMetadata.set(TikaCoreProperties.RESOURCE_NAME_KEY, fileName);
+         embeddedMetadata.set(Metadata.CONTENT_TYPE, file.getSubtype());
+         embeddedMetadata.set(Metadata.CONTENT_LENGTH, Long.toString(file.getSize()));
+         embeddedMetadata.set(TikaCoreProperties.EMBEDDED_RESOURCE_TYPE,
+                 TikaCoreProperties.EmbeddedResourceType.ATTACHMENT.toString());
+         embeddedMetadata.set(TikaCoreProperties.ORIGINAL_RESOURCE_NAME, fileName);
+         if (!embeddedDocumentExtractor.shouldParseEmbedded(embeddedMetadata)) {
+             return;
+         }
+         TikaInputStream stream = null;
+         try {
+             stream = TikaInputStream.get(file.createInputStream());
+         } catch (IOException e) {
+             //store this exception in the parent's metadata
+             EmbeddedDocumentUtil.recordEmbeddedStreamException(e, metadata);
+             return;
+         }
+         try {
+             embeddedDocumentExtractor
+                     .parseEmbedded(stream, new EmbeddedContentHandler(xhtml), embeddedMetadata,
+                             false);
+ 
+             attributes.addAttribute("", "class", "class", "CDATA", "embedded");
+             attributes.addAttribute("", "id", "id", "CDATA", fileName);
+             xhtml.startElement("div", attributes);
+             xhtml.endElement("div");
+         } finally {
+             IOUtils.closeQuietly(stream);
+         }
+ 
+     }
+ 
+     void handleCatchableIOE(IOException e) throws IOException {
+ 
+         if (WriteLimitReachedException.isWriteLimitReached(e)) {
+             metadata.set(TikaCoreProperties.WRITE_LIMIT_REACHED, "true");
+             throw e;
+         }
+ 
+         if (config.isCatchIntermediateIOExceptions()) {
+ 
+             String msg = e.getMessage();
+             if (msg == null) {
+                 msg = "IOException, no message";
+             }
+             metadata.add(TikaCoreProperties.TIKA_META_EXCEPTION_WARNING, msg);
+             exceptions.add(e);
+         } else {
+             throw e;
+         }
+     }
+ 
+     void doOCROnCurrentPage(PDFParserConfig.OCR_STRATEGY ocrStrategy)
+             throws IOException, TikaException, SAXException {
+         if (ocrStrategy.equals(NO_OCR)) {
+             return;
+         }
+         MediaType ocrImageMediaType = MediaType.image("ocr-" + config.getOcrImageFormatName());
+         if (!ocrParser.getSupportedTypes(context).contains(ocrImageMediaType)) {
+             if (ocrStrategy == OCR_ONLY || ocrStrategy == OCR_AND_TEXT_EXTRACTION) {
+                 throw new TikaException(
+                         "" + "I regret that I couldn't find an OCR parser to handle " +
+                                 ocrImageMediaType + "." +
+                                 "Please set the OCR_STRATEGY to NO_OCR or configure your" +
+                                 "OCR parser correctly");
+             } else if (ocrStrategy == AUTO) {
+                 //silently skip
+                 return;
+             }
+         }
+ 
+         PDFRenderer renderer = new PDFRenderer(pdDocument);
+ 
+         try (TemporaryResources tmp = new TemporaryResources()) {
+ 
+             int dpi = config.getOcrDPI();
+             Path tmpFile = null;
+             try {
+                 BufferedImage image =
+                         renderer.renderImageWithDPI(pageIndex, dpi, config.getOcrImageType());
+                 tmpFile = tmp.createTempFile();
+                 try (OutputStream os = Files.newOutputStream(tmpFile)) {
+                     //TODO: get output format from TesseractConfig
+                     ImageIOUtil.writeImage(image, config.getOcrImageFormatName(), os, dpi,
+                             config.getOcrImageQuality());
+                 }
+             } catch (SecurityException e) {
+                 //throw SecurityExceptions immediately
+                 throw e;
+             } catch (IOException | RuntimeException e) {
+                 //image rendering can throw a variety of runtime exceptions, not just
+                 // IOExceptions...
+                 //need to have a wide catch
+                 metadata.add(TikaCoreProperties.TIKA_META_EXCEPTION_EMBEDDED_STREAM,
+                         ExceptionUtils.getStackTrace(e));
+                 return;
+             }
+             try (InputStream is = TikaInputStream.get(tmpFile)) {
+                 metadata.set(TikaCoreProperties.CONTENT_TYPE_PARSER_OVERRIDE,
+                         ocrImageMediaType.toString());
+                 ocrParser.parse(is, new EmbeddedContentHandler(new BodyContentHandler(xhtml)),
+                         metadata, context);
+             }
+         } catch (IOException e) {
+             handleCatchableIOE(e);
+         } catch (SAXException e) {
+             throw new IOException("error writing OCR content from PDF", e);
+         }
+     }
+ 
+     @Override
+     protected void endPage(PDPage page) throws IOException {
+         metadata.add(PDF.CHARACTERS_PER_PAGE, totalCharsPerPage);
+         metadata.add(PDF.UNMAPPED_UNICODE_CHARS_PER_PAGE, unmappedUnicodeCharsPerPage);
+ 
+ 
+         try {
+             for (PDAnnotation annotation : page.getAnnotations()) {
+ 
+                 if (annotation instanceof PDAnnotationFileAttachment) {
+                     PDAnnotationFileAttachment fann = (PDAnnotationFileAttachment) annotation;
+                     if (fann.getFile() instanceof PDComplexFileSpecification) {
+                         handlePDComplexFileSpec(fann.getAttachmentName(),
+                                 "annotationFileAttachment",
+                                 (PDComplexFileSpecification)fann.getFile());
+                     }
+                 } else if (annotation instanceof PDAnnotationWidget) {
+                     handleWidget((PDAnnotationWidget) annotation);
+                 } else {
+                     String annotationType = annotation.getSubtype();
+                     if (annotationType == null) {
+                         annotationType = "unknown";
+                     }
+                     for (COSDictionary fileSpec :
+                             findFileSpecs(annotation.getCOSObject())) {
+                         PDComplexFileSpecification cfs = new PDComplexFileSpecification(fileSpec);
+                         handlePDComplexFileSpec(cfs.getFilename(),
+                                 annotationType, cfs);
+                     }
+                 }
+                 // TODO: remove once PDFBOX-1143 is fixed:
+                 if (config.isExtractAnnotationText()) {
+                     PDActionURI uri = getActionURI(annotation);
+                     if (uri != null) {
+                         String link = uri.getURI();
+                         if (link != null && link.trim().length() > 0) {
+                             xhtml.startElement("div", "class", "annotation");
+                             xhtml.startElement("a", "href", link);
+                             xhtml.characters(link);
+                             xhtml.endElement("a");
+                             xhtml.endElement("div");
+                         }
+                     }
+ 
+                     if (annotation instanceof PDAnnotationMarkup) {
+                         PDAnnotationMarkup annotationMarkup = (PDAnnotationMarkup) annotation;
+                         String title = annotationMarkup.getTitlePopup();
+                         String subject = annotationMarkup.getSubject();
+                         String contents = annotationMarkup.getContents();
+                         // TODO: maybe also annotationMarkup.getRichContents()?
+                         if (title != null || subject != null || contents != null) {
+                             xhtml.startElement("div", "class", "annotation");
+ 
+                             if (title != null) {
+                                 xhtml.startElement("div", "class", "annotationTitle");
+                                 xhtml.characters(title);
+                                 xhtml.endElement("div");
+                             }
+ 
+                             if (subject != null) {
+                                 xhtml.startElement("div", "class", "annotationSubject");
+                                 xhtml.characters(subject);
+                                 xhtml.endElement("div");
+                             }
+ 
+                             if (contents != null) {
+                                 xhtml.startElement("div", "class", "annotationContents");
+                                 xhtml.characters(contents);
+                                 xhtml.endElement("div");
+                             }
+ 
+                             xhtml.endElement("div");
+                         }
+                     }
+                 }
+             }
+             if (config.getOcrStrategy()
+                     .equals(PDFParserConfig.OCR_STRATEGY.OCR_AND_TEXT_EXTRACTION)) {
+                 doOCROnCurrentPage(OCR_AND_TEXT_EXTRACTION);
+             } else if (config.getOcrStrategy().equals(PDFParserConfig.OCR_STRATEGY.AUTO)) {
+                 //TODO add more sophistication
+                 if (totalCharsPerPage < 10 || unmappedUnicodeCharsPerPage > 10) {
+                     doOCROnCurrentPage(AUTO);
+                 }
+             }
+ 
+             PDPageAdditionalActions pageActions = page.getActions();
+             if (pageActions != null) {
+                 handleDestinationOrAction(pageActions.getC(), ActionTrigger.PAGE_CLOSE);
+                 handleDestinationOrAction(pageActions.getO(), ActionTrigger.PAGE_OPEN);
+             }
+             xhtml.endElement("div");
+         } catch (SAXException | TikaException e) {
+             throw new IOException("Unable to end a page", e);
+         } catch (IOException e) {
+             handleCatchableIOE(e);
+         } finally {
+             totalCharsPerPage = 0;
+             unmappedUnicodeCharsPerPage = 0;
+         }
+ 
+         if (config.isExtractFontNames()) {
+             for (COSName n : page.getResources().getFontNames()) {
+                 PDFont font = page.getResources().getFont(n);
+                 if (font != null && font.getFontDescriptor() != null) {
+                     String fontName = font.getFontDescriptor().getFontName();
+                     if (fontName != null) {
+                         fontNames.add(fontName);
+                     }
+                 }
+             }
+         }
+     }
+ 
+     private List<COSDictionary> findFileSpecs(COSDictionary cosDict) {
+         Set<COSName> types = new HashSet<>();
+         types.add(COSName.FILESPEC);
+         return PDFDOMUtil.findType(cosDict, types, MAX_RECURSION_DEPTH);
+     }
+ 
+     private void handlePDComplexFileSpec(String attachmentName,
+                                          String annotationType,
+                                          PDComplexFileSpecification fileSpec) throws IOException {
+         try {
+             AttributesImpl attributes = new AttributesImpl();
+             attributes.addAttribute("", "source", "source", "CDATA", annotationType);
+             extractMultiOSPDEmbeddedFiles(attachmentName, fileSpec,
+                     attributes);
+         } catch (SAXException e) {
+             throw new IOException("file embedded in annotation sax exception", e);
+         } catch (TikaException e) {
+             throw new IOException("file embedded in annotation tika exception", e);
+         } catch (IOException e) {
+             handleCatchableIOE(e);
+         }
+ 
+     }
+ 
+ 
+     private void handleWidget(PDAnnotationWidget widget)
+             throws TikaException, SAXException, IOException {
+         if (widget == null) {
+             return;
+         }
+         handleDestinationOrAction(widget.getAction(), ActionTrigger.ANNOTATION_WIDGET);
+         PDAnnotationAdditionalActions annotationActions = widget.getActions();
+         if (annotationActions != null) {
+             handleDestinationOrAction(annotationActions.getBl(),
+                     ActionTrigger.ANNOTATION_LOSE_INPUT_FOCUS);
+             handleDestinationOrAction(annotationActions.getD(),
+                     ActionTrigger.ANNOTATION_MOUSE_CLICK);
+             handleDestinationOrAction(annotationActions.getE(),
+                     ActionTrigger.ANNOTATION_CURSOR_ENTERS);
+             handleDestinationOrAction(annotationActions.getFo(),
+                     ActionTrigger.ANNOTATION_RECEIVES_FOCUS);
+             handleDestinationOrAction(annotationActions.getPC(),
+                     ActionTrigger.ANNOTATION_PAGE_CLOSED);
+             handleDestinationOrAction(annotationActions.getPI(),
+                     ActionTrigger.ANNOTATION_PAGE_NO_LONGER_VISIBLE);
+             handleDestinationOrAction(annotationActions.getPO(),
+                     ActionTrigger.ANNOTATION_PAGE_OPENED);
+             handleDestinationOrAction(annotationActions.getPV(),
+                     ActionTrigger.ANNOTATION_PAGE_VISIBLE);
+             handleDestinationOrAction(annotationActions.getU(),
+                     ActionTrigger.ANNOTATION_MOUSE_RELEASED);
+             handleDestinationOrAction(annotationActions.getX(),
+                     ActionTrigger.ANNOTATION_CURSOR_EXIT);
+         }
+ 
+     }
+ 
+     @Override
+     protected void startDocument(PDDocument pdf) throws IOException {
+         try {
+             xhtml.startDocument();
+             try {
+                 handleDestinationOrAction(pdf.getDocumentCatalog().getOpenAction(),
+                         ActionTrigger.DOCUMENT_OPEN);
+             } catch (IOException e) {
+                 //See PDFBOX-3773
+                 //swallow -- no need to report this
+             }
+         } catch (TikaException | SAXException e) {
+             throw new IOException("Unable to start a document", e);
+         }
+     }
+ 
+     private void handleDestinationOrAction(PDDestinationOrAction action,
+                                            ActionTrigger actionTrigger)
+             throws IOException, SAXException, TikaException {
+         if (action == null || !config.isExtractActions()) {
+             return;
+         }
+         AttributesImpl attributes = new AttributesImpl();
+         String actionOrDestString = (action instanceof PDAction) ? "action" : "destination";
+ 
+         addNonNullAttribute("class", actionOrDestString, attributes);
+         addNonNullAttribute("type", action.getClass().getSimpleName(), attributes);
+         addNonNullAttribute("trigger", actionTrigger.name(), attributes);
+ 
+         if (action instanceof PDActionImportData) {
+             processDoc("", ((PDActionImportData) action).getFile(), attributes);
+         } else if (action instanceof PDActionLaunch) {
+             PDActionLaunch pdActionLaunch = (PDActionLaunch) action;
+             addNonNullAttribute("id", pdActionLaunch.getF(), attributes);
+             addNonNullAttribute("defaultDirectory", pdActionLaunch.getD(), attributes);
+             addNonNullAttribute("operation", pdActionLaunch.getO(), attributes);
+             addNonNullAttribute("parameters", pdActionLaunch.getP(), attributes);
+             processDoc(pdActionLaunch.getF(), pdActionLaunch.getFile(), attributes);
+         } else if (action instanceof PDActionRemoteGoTo) {
+             PDActionRemoteGoTo remoteGoTo = (PDActionRemoteGoTo) action;
+             processDoc("", remoteGoTo.getFile(), attributes);
+         } else if (action instanceof PDActionJavaScript) {
+             PDActionJavaScript jsAction = (PDActionJavaScript) action;
+             Metadata m = new Metadata();
+             m.set(Metadata.CONTENT_TYPE, "application/javascript");
+             m.set(Metadata.CONTENT_ENCODING, StandardCharsets.UTF_8.toString());
+             m.set(PDF.ACTION_TRIGGER, actionTrigger.toString());
+             m.set(TikaCoreProperties.EMBEDDED_RESOURCE_TYPE,
+                     TikaCoreProperties.EmbeddedResourceType.MACRO.name());
+             String js = jsAction.getAction();
+             js = (js == null) ? "" : js;
+             if (embeddedDocumentExtractor.shouldParseEmbedded(m)) {
+                 try (InputStream is = TikaInputStream.get(js.getBytes(StandardCharsets.UTF_8))) {
+                     embeddedDocumentExtractor.parseEmbedded(is, xhtml, m, false);
+                 }
+             }
+             addNonNullAttribute("class", "javascript", attributes);
+             addNonNullAttribute("type", jsAction.getType(), attributes);
+             addNonNullAttribute("subtype", jsAction.getSubType(), attributes);
+             xhtml.startElement("div", attributes);
+             xhtml.endElement("div");
+         /*} else if (action instanceof PDActionSubmitForm) {
+             PDActionSubmitForm submitForm = (PDActionSubmitForm) action;
+             //these are typically urls, not actual file specification
+             PDFileSpecification fileSpecification = submitForm.getFile();
+             processDoc("", fileSpecification, new AttributesImpl());*/
+         } else {
+             xhtml.startElement("div", attributes);
+             xhtml.endElement("div");
+         }
+     }
+ 
+     @Override
+     protected void endDocument(PDDocument pdf) throws IOException {
+         try {
+             // Extract text for any bookmarks:
+             if (config.isExtractBookmarksText()) {
+                 extractBookmarkText();
+             }
+ 
+             try {
+                 extractEmbeddedDocuments(pdf);
+             } catch (IOException e) {
+                 handleCatchableIOE(e);
+             }
+ 
+             extractXMPXFA(pdf, metadata, context);
+ 
+             //extract acroform data at end of doc
+             if (config.isExtractAcroFormContent() == true) {
+                 try {
+                     extractAcroForm(pdf);
+                 } catch (IOException e) {
+                     handleCatchableIOE(e);
+                 }
+             }
+             PDDocumentCatalogAdditionalActions additionalActions =
+                     pdf.getDocumentCatalog().getActions();
+             handleDestinationOrAction(additionalActions.getDP(),
+                     ActionTrigger.AFTER_DOCUMENT_PRINT);
+             handleDestinationOrAction(additionalActions.getDS(), ActionTrigger.AFTER_DOCUMENT_SAVE);
+             handleDestinationOrAction(additionalActions.getWC(),
+                     ActionTrigger.BEFORE_DOCUMENT_CLOSE);
+             handleDestinationOrAction(additionalActions.getWP(),
+                     ActionTrigger.BEFORE_DOCUMENT_PRINT);
+             handleDestinationOrAction(additionalActions.getWS(),
+                     ActionTrigger.BEFORE_DOCUMENT_SAVE);
+             xhtml.endDocument();
+         } catch (TikaException | SAXException e) {
+             throw new IOException("Unable to end a document", e);
+         }
+         if (fontNames.size() > 0) {
+             for (String fontName : fontNames) {
+                 metadata.add(Font.FONT_NAME, fontName);
+             }
+         }
+     }
+ 
+     void extractBookmarkText() throws SAXException, IOException, TikaException {
+         PDDocumentOutline outline = document.getDocumentCatalog().getDocumentOutline();
+         if (outline != null) {
+             extractBookmarkText(outline);
+         }
+     }
+ 
+     void extractBookmarkText(PDOutlineNode bookmark)
+             throws SAXException, IOException, TikaException {
+         PDOutlineItem current = bookmark.getFirstChild();
+ 
+         if (current != null) {
+             xhtml.startElement("ul");
+             while (current != null) {
+                 xhtml.startElement("li");
+                 xhtml.characters(current.getTitle());
+                 xhtml.endElement("li");
+                 handleDestinationOrAction(current.getAction(), ActionTrigger.BOOKMARK);
+                 // Recurse:
+                 extractBookmarkText(current);
+                 current = current.getNextSibling();
+             }
+             xhtml.endElement("ul");
+         }
+     }
+ 
+     void extractAcroForm(PDDocument pdf) throws IOException, SAXException, TikaException {
+         //Thank you, Ben Litchfield, for org.apache.pdfbox.examples.fdf.PrintFields
+         //this code derives from Ben's code
+         PDDocumentCatalog catalog = pdf.getDocumentCatalog();
+ 
+         if (catalog == null) {
+             return;
+         }
+ 
+         PDAcroForm form = catalog.getAcroForm(null);
+         if (form == null) {
+             return;
+         }
+ 
+         //if it has xfa, try that.
+         //if it doesn't exist or there's an exception,
+         //go with traditional AcroForm
+         PDXFAResource pdxfa = form.getXFA();
+ 
+         if (pdxfa != null) {
+             //if successful, return
+             XFAExtractor xfaExtractor = new XFAExtractor();
+             InputStream is = null;
+             try {
+                 is = new BufferedInputStream(new ByteArrayInputStream(pdxfa.getBytes()));
+             } catch (IOException e) {
+                 EmbeddedDocumentUtil.recordEmbeddedStreamException(e, metadata);
+             }
+             if (is != null) {
+                 try {
+                     xfaExtractor.extract(is, xhtml, metadata, context);
+                     return;
+                 } catch (XMLStreamException e) {
+                     //if there was an xml parse exception in xfa, try the AcroForm
+                     EmbeddedDocumentUtil.recordException(e, metadata);
+                 } finally {
+                     IOUtils.closeQuietly(is);
+                 }
+             }
+         }
+ 
+         @SuppressWarnings("rawtypes") List fields = form.getFields();
+ 
+         if (fields == null) {
+             return;
+         }
+ 
+         @SuppressWarnings("rawtypes") ListIterator itr = fields.listIterator();
+ 
+         if (itr == null) {
+             return;
+         }
+ 
+         xhtml.startElement("div", "class", "acroform");
+         xhtml.startElement("ol");
+ 
+         while (itr.hasNext()) {
+             Object obj = itr.next();
+             if (obj != null && obj instanceof PDField) {
+                 processAcroField((PDField) obj, 0);
+             }
+         }
+         xhtml.endElement("ol");
+         xhtml.endElement("div");
+     }
+ 
+     private void processAcroField(PDField field, final int currentRecursiveDepth)
+             throws SAXException, IOException, TikaException {
+ 
+         if (currentRecursiveDepth >= MAX_RECURSION_DEPTH) {
+             return;
+         }
+ 
+         PDFormFieldAdditionalActions pdFormFieldAdditionalActions = field.getActions();
+         if (pdFormFieldAdditionalActions != null) {
+             handleDestinationOrAction(pdFormFieldAdditionalActions.getC(),
+                     ActionTrigger.FORM_FIELD_RECALCULATE);
+             handleDestinationOrAction(pdFormFieldAdditionalActions.getF(),
+                     ActionTrigger.FORM_FIELD_FORMATTED);
+             handleDestinationOrAction(pdFormFieldAdditionalActions.getK(),
+                     ActionTrigger.FORM_FIELD_KEYSTROKE);
+             handleDestinationOrAction(pdFormFieldAdditionalActions.getV(),
+                     ActionTrigger.FORM_FIELD_VALUE_CHANGE);
+         }
+         if (field.getWidgets() != null) {
+             for (PDAnnotationWidget widget : field.getWidgets()) {
+                 handleWidget(widget);
+             }
+         }
+ 
+ 
+         addFieldString(field);
+         if (field instanceof PDNonTerminalField) {
+             int r = currentRecursiveDepth + 1;
+             xhtml.startElement("ol");
+             for (PDField child : ((PDNonTerminalField) field).getChildren()) {
+                 processAcroField(child, r);
+             }
+             xhtml.endElement("ol");
+         }
+     }
+ 
+     private void addFieldString(PDField field) throws SAXException {
+         //Pick partial name to present in content and altName for attribute
+         //Ignoring FullyQualifiedName for now
+         String partName = field.getPartialName();
+         String altName = field.getAlternateFieldName();
+ 
+         StringBuilder sb = new StringBuilder();
+         AttributesImpl attrs = new AttributesImpl();
+ 
+         if (partName != null) {
+             sb.append(partName).append(": ");
+         }
+         if (altName != null) {
+             attrs.addAttribute("", "altName", "altName", "CDATA", altName);
+         }
+         //return early if PDSignature field
+         if (field instanceof PDSignatureField) {
+             handleSignature(attrs, (PDSignatureField) field);
+             return;
+         }
+         String value = field.getValueAsString();
+         if (value != null && !value.equals("null")) {
+             sb.append(value);
+         }
+ 
+         if (attrs.getLength() > 0 || sb.length() > 0) {
+             xhtml.startElement("li", attrs);
+             xhtml.characters(sb.toString());
+             xhtml.endElement("li");
+         }
+     }
+ 
+     private void handleSignature(AttributesImpl parentAttributes, PDSignatureField sigField)
+             throws SAXException {
+ 
+         PDSignature sig = sigField.getSignature();
+         if (sig == null) {
+             return;
+         }
+         Map<String, String> vals = new TreeMap<>();
+         vals.put("name", sig.getName());
+         vals.put("contactInfo", sig.getContactInfo());
+         vals.put("location", sig.getLocation());
+         vals.put("reason", sig.getReason());
+ 
+         Calendar cal = sig.getSignDate();
+         if (cal != null) {
+             dateFormat.setTimeZone(cal.getTimeZone());
+             vals.put("date", dateFormat.format(cal.getTime()));
+         }
+         //see if there is any data
+         int nonNull = 0;
+         for (String val : vals.keySet()) {
+             if (val != null && !val.equals("")) {
+                 nonNull++;
+             }
+         }
+         //if there is, process it
+         if (nonNull > 0) {
+             metadata.set(TikaCoreProperties.HAS_SIGNATURE, "true");
+             xhtml.startElement("li", parentAttributes);
+ 
+             AttributesImpl attrs = new AttributesImpl();
+             attrs.addAttribute("", "type", "type", "CDATA", "signaturedata");
+ 
+             xhtml.startElement("ol", attrs);
+             for (Map.Entry<String, String> e : vals.entrySet()) {
+                 if (e.getValue() == null || e.getValue().equals("")) {
+                     continue;
+                 }
+                 attrs = new AttributesImpl();
+                 attrs.addAttribute("", "signdata", "signdata", "CDATA", e.getKey());
+                 xhtml.startElement("li", attrs);
+                 xhtml.characters(e.getValue());
+                 xhtml.endElement("li");
+             }
+             xhtml.endElement("ol");
+             xhtml.endElement("li");
+         }
+     }
+ 
+     /**
+      * we need to override this because we are overriding {@link #processPages(PDPageTree)}
+      *
+      * @return
+      */
+     @Override
+     public int getCurrentPageNo() {
+         return pageIndex + 1;
+     }
+ 
+     /**
+      * See TIKA-2845 for why we need to override this.
+      *
+      * @param pages
+      * @throws IOException
+      */
+     @Override
+     protected void processPages(PDPageTree pages) throws IOException {
+         //we currently need this hack because we aren't able to increment
+         //the private currentPageNo in PDFTextStripper,
+         //and PDFTextStripper's processPage relies on that variable
+         //being >= startPage when deciding whether or not to process a page
+         // See:
+         // if (currentPageNo >= startPage && currentPageNo <= endPage
+         //                && (startBookmarkPageNumber == -1 ||
+         //                currentPageNo >= startBookmarkPageNumber)
+         //                && (endBookmarkPageNumber == -1 ||
+         //                currentPageNo <= endBookmarkPageNumber))
+         //        {
+         super.setStartPage(-1);
+         for (PDPage page : pages) {
+             if (getCurrentPageNo() >= getStartPage() && getCurrentPageNo() <= getEndPage()) {
+                 processPage(page);
+             }
+             pageIndex++;
+         }
+     }
+ 
+     @Override
+     public void setStartBookmark(PDOutlineItem pdOutlineItem) {
+         throw new UnsupportedOperationException(
+                 "We don't currently support this -- See PDFTextStripper's processPages() for how " +
+                         "to implement this.");
+     }
+ 
+     @Override
+     public void setEndBookmark(PDOutlineItem pdOutlineItem) {
+         throw new UnsupportedOperationException(
+                 "We don't currently support this -- See PDFTextStripper's processPages() for how " +
+                         "to implement this.");
+     }
+ 
+     @Override
+     public int getStartPage() {
+         return startPage;
+     }
+ 
+     @Override
+     public void setStartPage(int startPage) {
+         this.startPage = startPage;
+     }
+ 
+     @Override
 -    protected void showGlyph(Matrix textRenderingMatrix, PDFont font, int code, String unicode,
++    protected void showGlyph(Matrix textRenderingMatrix, PDFont font, int code,
+                              Vector displacement) throws IOException {
 -        super.showGlyph(textRenderingMatrix, font, code, unicode, displacement);
++        super.showGlyph(textRenderingMatrix, font, code, displacement);
++        String unicode = font.toUnicode(code);
+         if (unicode == null || unicode.isEmpty()) {
+             unmappedUnicodeCharsPerPage++;
+         }
+         totalCharsPerPage++;
+     }
+ 
+     enum ActionTrigger {
+         AFTER_DOCUMENT_PRINT, AFTER_DOCUMENT_SAVE, ANNOTATION_CURSOR_ENTERS,
+         ANNOTATION_CURSOR_EXIT,
+         ANNOTATION_LOSE_INPUT_FOCUS, ANNOTATION_MOUSE_CLICK, ANNOTATION_MOUSE_RELEASED,
+         ANNOTATION_PAGE_CLOSED, ANNOTATION_PAGE_NO_LONGER_VISIBLE, ANNOTATION_PAGE_OPENED,
+         ANNOTATION_PAGE_VISIBLE, ANNOTATION_RECEIVES_FOCUS, ANNOTATION_WIDGET,
+         BEFORE_DOCUMENT_CLOSE, BEFORE_DOCUMENT_PRINT, BEFORE_DOCUMENT_SAVE, DOCUMENT_OPEN,
+         FORM_FIELD, FORM_FIELD_FORMATTED, FORM_FIELD_KEYSTROKE, FORM_FIELD_RECALCULATE,
+         FORM_FIELD_VALUE_CHANGE, PAGE_CLOSE, PAGE_OPEN, BOOKMARK,
+     }
+ }
diff --cc tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/ImageGraphicsEngine.java
index 0000000,63c3825..c9e6cac
mode 000000,100644..100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/ImageGraphicsEngine.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/ImageGraphicsEngine.java
@@@ -1,0 -1,491 +1,491 @@@
+ /*
+  * Licensed to the Apache Software Foundation (ASF) under one or more
+  * contributor license agreements.  See the NOTICE file distributed with
+  * this work for additional information regarding copyright ownership.
+  * The ASF licenses this file to You under the Apache License, Version 2.0
+  * (the "License"); you may not use this file except in compliance with
+  * the License.  You may obtain a copy of the License at
+  *
+  *     http://www.apache.org/licenses/LICENSE-2.0
+  *
+  * Unless required by applicable law or agreed to in writing, software
+  * distributed under the License is distributed on an "AS IS" BASIS,
+  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  * See the License for the specific language governing permissions and
+  * limitations under the License.
+  */
+ package org.apache.tika.parser.pdf;
+ 
+ import java.awt.geom.Point2D;
+ import java.awt.image.BufferedImage;
+ import java.io.ByteArrayOutputStream;
+ import java.io.IOException;
+ import java.io.InputStream;
+ import java.io.OutputStream;
+ import java.util.ArrayList;
+ import java.util.Arrays;
+ import java.util.Collections;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.concurrent.atomic.AtomicInteger;
+ 
+ import org.apache.pdfbox.contentstream.PDFGraphicsStreamEngine;
+ import org.apache.pdfbox.cos.COSName;
+ import org.apache.pdfbox.cos.COSStream;
+ import org.apache.pdfbox.filter.MissingImageReaderException;
+ import org.apache.pdfbox.io.IOUtils;
+ import org.apache.pdfbox.pdmodel.PDPage;
+ import org.apache.pdfbox.pdmodel.PDResources;
+ import org.apache.pdfbox.pdmodel.font.PDFont;
+ import org.apache.pdfbox.pdmodel.graphics.color.PDColor;
+ import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceGray;
+ import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceRGB;
+ import org.apache.pdfbox.pdmodel.graphics.color.PDPattern;
+ import org.apache.pdfbox.pdmodel.graphics.form.PDTransparencyGroup;
+ import org.apache.pdfbox.pdmodel.graphics.image.PDImage;
+ import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
+ import org.apache.pdfbox.pdmodel.graphics.pattern.PDAbstractPattern;
+ import org.apache.pdfbox.pdmodel.graphics.pattern.PDTilingPattern;
+ import org.apache.pdfbox.pdmodel.graphics.state.PDExtendedGraphicsState;
+ import org.apache.pdfbox.pdmodel.graphics.state.PDSoftMask;
+ import org.apache.pdfbox.pdmodel.graphics.state.RenderingMode;
+ import org.apache.pdfbox.tools.imageio.ImageIOUtil;
+ import org.apache.pdfbox.util.Matrix;
+ import org.apache.pdfbox.util.Vector;
+ import org.xml.sax.SAXException;
+ import org.xml.sax.helpers.AttributesImpl;
+ 
+ import org.apache.tika.exception.TikaException;
+ import org.apache.tika.exception.TikaMemoryLimitException;
+ import org.apache.tika.exception.ZeroByteFileException;
+ import org.apache.tika.extractor.EmbeddedDocumentExtractor;
+ import org.apache.tika.extractor.EmbeddedDocumentUtil;
+ import org.apache.tika.io.BoundedInputStream;
+ import org.apache.tika.io.TikaInputStream;
+ import org.apache.tika.metadata.Metadata;
+ import org.apache.tika.metadata.TikaCoreProperties;
+ import org.apache.tika.parser.ParseContext;
+ import org.apache.tika.sax.EmbeddedContentHandler;
+ import org.apache.tika.sax.XHTMLContentHandler;
+ 
+ /**
+  * Copied nearly verbatim from PDFBox
+  */
+ class ImageGraphicsEngine extends PDFGraphicsStreamEngine {
+ 
+     //We're currently copying images to byte[].  We should
+     //limit the length to avoid OOM on crafted files.
+     private static final long MAX_IMAGE_LENGTH_BYTES = 100 * 1024 * 1024;
+ 
+     private static final List<String> JPEG =
+             Arrays.asList(COSName.DCT_DECODE.getName(), COSName.DCT_DECODE_ABBREVIATION.getName());
+ 
+ 
+     private static final List<String> JP2 = Collections.singletonList(COSName.JPX_DECODE.getName());
+ 
+     private static final List<String> JB2 = Collections.singletonList(COSName.JBIG2_DECODE.getName());
+     final List<IOException> exceptions = new ArrayList<>();
+     private final EmbeddedDocumentExtractor embeddedDocumentExtractor;
+     private final PDFParserConfig pdfParserConfig;
+     private final Map<COSStream, Integer> processedInlineImages;
+     private final AtomicInteger imageCounter;
+     private final Metadata parentMetadata;
+     private final XHTMLContentHandler xhtml;
+     private final ParseContext parseContext;
+     private final boolean extractInlineImageMetadataOnly;
+     //TODO: parameterize this ?
+     private boolean useDirectJPEG = false;
+ 
+     //TODO: this is an embarrassment of an initializer...fix
+     protected ImageGraphicsEngine(PDPage page, EmbeddedDocumentExtractor embeddedDocumentExtractor,
+                                   PDFParserConfig pdfParserConfig,
+                                   Map<COSStream, Integer> processedInlineImages,
+                                   AtomicInteger imageCounter, XHTMLContentHandler xhtml,
+                                   Metadata parentMetadata, ParseContext parseContext) {
+         super(page);
+         this.embeddedDocumentExtractor = embeddedDocumentExtractor;
+         this.pdfParserConfig = pdfParserConfig;
+         this.processedInlineImages = processedInlineImages;
+         this.imageCounter = imageCounter;
+         this.xhtml = xhtml;
+         this.parentMetadata = parentMetadata;
+         this.parseContext = parseContext;
+         this.extractInlineImageMetadataOnly = pdfParserConfig.isExtractInlineImageMetadataOnly();
+     }
+ 
+     //nearly directly copied from PDFBox ExtractImages
+     private static void writeToBuffer(PDImage pdImage, String suffix, boolean directJPEG,
+                                       OutputStream out) throws IOException, TikaException {
+ 
+         if ("jpg".equals(suffix)) {
+ 
+             String colorSpaceName = pdImage.getColorSpace().getName();
+             if (directJPEG || (PDDeviceGray.INSTANCE.getName().equals(colorSpaceName) ||
+                     PDDeviceRGB.INSTANCE.getName().equals(colorSpaceName))) {
+                 // RGB or Gray colorspace: get and write the unmodified JPEG stream
+                 InputStream data = pdImage.createInputStream(JPEG);
+                 try {
+                     copyUpToMaxLength(data, out);
+                 } finally {
+                     IOUtils.closeQuietly(data);
+                 }
+             } else {
+                 BufferedImage image = pdImage.getImage();
+                 if (image != null) {
+                     // for CMYK and other "unusual" colorspaces, the JPEG will be converted
+                     ImageIOUtil.writeImage(image, suffix, out);
+                 }
+             }
+         } else if ("jp2".equals(suffix)) {
+             String colorSpaceName = pdImage.getColorSpace().getName();
+             if (directJPEG || !hasMasks(pdImage) &&
+                     (PDDeviceGray.INSTANCE.getName().equals(colorSpaceName) ||
+                             PDDeviceRGB.INSTANCE.getName().equals(colorSpaceName))) {
+                 // RGB or Gray colorspace: get and write the unmodified JPEG2000 stream
+                 InputStream data = pdImage.createInputStream(JP2);
+                 try {
+                     copyUpToMaxLength(data, out);
+                 } finally {
+                     IOUtils.closeQuietly(data);
+                 }
+             } else {
+                 // for CMYK and other "unusual" colorspaces, the image will be converted
+                 BufferedImage image = pdImage.getImage();
+                 if (image != null) {
+                     // for CMYK and other "unusual" colorspaces, the JPEG will be converted
+                     ImageIOUtil.writeImage(image, "jpeg2000", out);
+                 }
+             }
+         } else if ("tif".equals(suffix) && pdImage.getColorSpace().equals(PDDeviceGray.INSTANCE)) {
+             BufferedImage image = pdImage.getImage();
+             if (image == null) {
+                 return;
+             }
+             // CCITT compressed images can have a different colorspace, but this one is B/W
+             // This is a bitonal image, so copy to TYPE_BYTE_BINARY
+             // so that a G4 compressed TIFF image is created by ImageIOUtil.writeImage()
+             int w = image.getWidth();
+             int h = image.getHeight();
+             BufferedImage bitonalImage = new BufferedImage(w, h, BufferedImage.TYPE_BYTE_BINARY);
+             // copy image the old fashioned way - ColorConvertOp is slower!
+             for (int y = 0; y < h; y++) {
+                 for (int x = 0; x < w; x++) {
+                     bitonalImage.setRGB(x, y, image.getRGB(x, y));
+                 }
+             }
+             ImageIOUtil.writeImage(bitonalImage, suffix, out);
+         } else if ("jb2".equals(suffix)) {
+             InputStream data = pdImage.createInputStream(JB2);
+             try {
+                 copyUpToMaxLength(data, out);
+             } finally {
+                 IOUtils.closeQuietly(data);
+             }
+         } else {
+             BufferedImage image = pdImage.getImage();
+             if (image == null) {
+                 return;
+             }
+             ImageIOUtil.writeImage(image, suffix, out);
+         }
+ 
+         out.flush();
+     }
+ 
+     private static void copyUpToMaxLength(InputStream is, OutputStream os)
+             throws IOException, TikaException {
+         BoundedInputStream bis = new BoundedInputStream(MAX_IMAGE_LENGTH_BYTES, is);
+         IOUtils.copy(bis, os);
+         if (bis.hasHitBound()) {
+             throw new TikaMemoryLimitException(
+                     "Image size is larger than allowed (" + MAX_IMAGE_LENGTH_BYTES + ")");
+         }
+ 
+     }
+ 
+     private static boolean hasMasks(PDImage pdImage) throws IOException {
+         if (pdImage instanceof PDImageXObject) {
+             PDImageXObject ximg = (PDImageXObject) pdImage;
+             return ximg.getMask() != null || ximg.getSoftMask() != null;
+         }
+         return false;
+     }
+ 
+     void run() throws IOException {
+         PDPage page = getPage();
+ 
+         //TODO: is there a better way to do this rather than reprocessing the page
+         //can we process the text and images in one go?
+         processPage(page);
+         PDResources res = page.getResources();
+         if (res == null) {
+             return;
+         }
+ 
+         for (COSName name : res.getExtGStateNames()) {
+             PDExtendedGraphicsState extendedGraphicsState = res.getExtGState(name);
+             if (extendedGraphicsState != null) {
+                 PDSoftMask softMask = extendedGraphicsState.getSoftMask();
+ 
+                 if (softMask != null) {
+                     try {
+                         PDTransparencyGroup group = softMask.getGroup();
+ 
+                         if (group != null) {
+                             // PDFBOX-4327: without this line NPEs will occur
+                             res.getExtGState(name).copyIntoGraphicsState(getGraphicsState());
+ 
+                             processSoftMask(group);
+                         }
+                     } catch (IOException e) {
+                         handleCatchableIOE(e);
+                     }
+                 }
+             }
+         }
+     }
+ 
+     @Override
+     public void drawImage(PDImage pdImage) throws IOException {
+         int imageNumber = 0;
+         if (pdImage instanceof PDImageXObject) {
+             if (pdImage.isStencil()) {
+                 processColor(getGraphicsState().getNonStrokingColor());
+             }
+ 
+             PDImageXObject xobject = (PDImageXObject) pdImage;
+             Integer cachedNumber = processedInlineImages.get(xobject.getCOSObject());
+             if (cachedNumber != null && pdfParserConfig.isExtractUniqueInlineImagesOnly()) {
+                 // skip duplicate image
+                 return;
+             }
+             if (cachedNumber == null) {
+                 imageNumber = imageCounter.getAndIncrement();
+                 processedInlineImages.put(xobject.getCOSObject(), imageNumber);
+             }
+         } else {
+             imageNumber = imageCounter.getAndIncrement();
+         }
+         //TODO: should we use the hash of the PDImage to check for seen
+         //For now, we're relying on the cosobject, but this could lead to
+         //duplicates if the pdImage is not a PDImageXObject?
+         try {
+             processImage(pdImage, imageNumber);
+         } catch (TikaException | SAXException e) {
+             throw new IOException(e);
+         } catch (IOException e) {
+             handleCatchableIOE(e);
+         }
+     }
+ 
+     @Override
+     public void appendRectangle(Point2D p0, Point2D p1, Point2D p2, Point2D p3) throws IOException {
+ 
+     }
+ 
+     @Override
+     public void clip(int windingRule) throws IOException {
+ 
+     }
+ 
+     @Override
+     public void moveTo(float x, float y) throws IOException {
+ 
+     }
+ 
+     @Override
+     public void lineTo(float x, float y) throws IOException {
+ 
+     }
+ 
+     @Override
+     public void curveTo(float x1, float y1, float x2, float y2, float x3, float y3)
+             throws IOException {
+ 
+     }
+ 
+     @Override
+     public Point2D getCurrentPoint() throws IOException {
+         return new Point2D.Float(0, 0);
+     }
+ 
+     @Override
+     public void closePath() throws IOException {
+ 
+     }
+ 
+     @Override
+     public void endPath() throws IOException {
+ 
+     }
+ 
+     @Override
 -    protected void showGlyph(Matrix textRenderingMatrix, PDFont font, int code, String unicode,
++    protected void showGlyph(Matrix textRenderingMatrix, PDFont font, int code,
+                              Vector displacement) throws IOException {
+ 
+         RenderingMode renderingMode = getGraphicsState().getTextState().getRenderingMode();
+         if (renderingMode.isFill()) {
+             processColor(getGraphicsState().getNonStrokingColor());
+         }
+ 
+         if (renderingMode.isStroke()) {
+             processColor(getGraphicsState().getStrokingColor());
+         }
+     }
+ 
+     @Override
+     public void strokePath() throws IOException {
+         processColor(getGraphicsState().getStrokingColor());
+     }
+ 
+     @Override
+     public void fillPath(int windingRule) throws IOException {
+         processColor(getGraphicsState().getNonStrokingColor());
+     }
+ 
+     @Override
+     public void fillAndStrokePath(int windingRule) throws IOException {
+         processColor(getGraphicsState().getNonStrokingColor());
+     }
+ 
+     @Override
+     public void shadingFill(COSName shadingName) throws IOException {
+ 
+     }
+ 
+     // find out if it is a tiling pattern, then process that one
+     private void processColor(PDColor color) throws IOException {
+         if (color.getColorSpace() instanceof PDPattern) {
+             PDPattern pattern = (PDPattern) color.getColorSpace();
+             PDAbstractPattern abstractPattern = pattern.getPattern(color);
+ 
+             if (abstractPattern instanceof PDTilingPattern) {
+                 processTilingPattern((PDTilingPattern) abstractPattern, null, null);
+             }
+         }
+     }
+ 
+     private void processImage(PDImage pdImage, int imageNumber)
+             throws IOException, TikaException, SAXException {
+         //this is the metadata for this particular image
+         Metadata metadata = new Metadata();
+         String suffix = getSuffix(pdImage, metadata);
+         String fileName = "image" + imageNumber + "." + suffix;
+ 
+ 
+         AttributesImpl attr = new AttributesImpl();
+         attr.addAttribute("", "src", "src", "CDATA", "embedded:" + fileName);
+         attr.addAttribute("", "alt", "alt", "CDATA", fileName);
+         xhtml.startElement("img", attr);
+         xhtml.endElement("img");
+ 
+ 
+         metadata.set(TikaCoreProperties.RESOURCE_NAME_KEY, fileName);
+         metadata.set(TikaCoreProperties.EMBEDDED_RESOURCE_TYPE,
+                 TikaCoreProperties.EmbeddedResourceType.INLINE.toString());
+ 
+         if (extractInlineImageMetadataOnly) {
+             extractInlineImageMetadataOnly(pdImage, metadata);
+             return;
+         }
+ 
+         if (embeddedDocumentExtractor.shouldParseEmbedded(metadata)) {
+             ByteArrayOutputStream buffer = new ByteArrayOutputStream();
+             if (pdImage instanceof PDImageXObject) {
+                 PDMetadataExtractor
+                         .extract(((PDImageXObject) pdImage).getMetadata(), metadata, parseContext);
+             }
+             //extract the metadata contained outside of the image
+             try {
+                 writeToBuffer(pdImage, suffix, useDirectJPEG, buffer);
+             } catch (MissingImageReaderException e) {
+                 EmbeddedDocumentUtil.recordException(e, parentMetadata);
+                 return;
+             } catch (IOException e) {
+                 EmbeddedDocumentUtil.recordEmbeddedStreamException(e, metadata);
+                 return;
+             }
+             try (InputStream embeddedIs = TikaInputStream.get(buffer.toByteArray())) {
+                 embeddedDocumentExtractor
+                         .parseEmbedded(embeddedIs, new EmbeddedContentHandler(xhtml), metadata,
+                                 false);
+             }
+         }
+ 
+     }
+ 
+     private void extractInlineImageMetadataOnly(PDImage pdImage, Metadata metadata)
+             throws IOException, SAXException {
+         if (pdImage instanceof PDImageXObject) {
+             PDMetadataExtractor
+                     .extract(((PDImageXObject) pdImage).getMetadata(), metadata, parseContext);
+         }
+         metadata.set(Metadata.IMAGE_WIDTH, pdImage.getWidth());
+         metadata.set(Metadata.IMAGE_LENGTH, pdImage.getHeight());
+         //TODO: what else can we extract from the PDImage without rendering?
+         ZeroByteFileException.IgnoreZeroByteFileException before =
+                 parseContext.get(ZeroByteFileException.IgnoreZeroByteFileException.class);
+         try {
+             parseContext.set(ZeroByteFileException.IgnoreZeroByteFileException.class,
+                     ZeroByteFileException.IGNORE_ZERO_BYTE_FILE_EXCEPTION);
+             embeddedDocumentExtractor.parseEmbedded(TikaInputStream.get(new byte[0]),
+                     new EmbeddedContentHandler(xhtml), metadata, false);
+         } finally {
+             //replace whatever was there before
+             parseContext.set(ZeroByteFileException.IgnoreZeroByteFileException.class, before);
+         }
+     }
+ 
+     private String getSuffix(PDImage pdImage, Metadata metadata) throws IOException {
+         String suffix = pdImage.getSuffix();
+ 
+         if (suffix == null || suffix.equals("png")) {
+             metadata.set(Metadata.CONTENT_TYPE, "image/png");
+             suffix = "png";
+         } else if (suffix.equals("jpg")) {
+             metadata.set(Metadata.CONTENT_TYPE, "image/jpeg");
+         } else if (suffix.equals("tiff")) {
+             metadata.set(Metadata.CONTENT_TYPE, "image/tiff");
+             suffix = "tif";
+         } else if (suffix.equals("jpx")) {
+             metadata.set(Metadata.CONTENT_TYPE, "image/jp2");
+             // use jp2 suffix for file because jpx not known by windows
+             suffix = "jp2";
+         } else if (suffix.equals("jb2")) {
+             //PDFBox resets suffix to png when image's suffix == jb2
+             metadata.set(Metadata.CONTENT_TYPE, "image/x-jbig2");
+         } else {
+             //TODO: determine if we need to add more image types
+ //                    throw new RuntimeException("EXTEN:" + extension);
+         }
+         if (hasMasks(pdImage)) {
+             // TIKA-3040, PDFBOX-4771: can't save ARGB as JPEG
+             suffix = "png";
+         }
+         return suffix;
+     }
+ 
+     void handleCatchableIOE(IOException e) throws IOException {
+         if (pdfParserConfig.isCatchIntermediateIOExceptions()) {
+             if (e.getCause() instanceof SAXException && e.getCause().getMessage() != null &&
+                     e.getCause().getMessage().contains("Your document contained more than")) {
+                 //TODO -- is there a cleaner way of checking for:
+                 // WriteOutContentHandler.WriteLimitReachedException?
+                 throw e;
+             }
+ 
+             String msg = e.getMessage();
+             if (msg == null) {
+                 msg = "IOException, no message";
+             }
+             parentMetadata.add(TikaCoreProperties.TIKA_META_EXCEPTION_WARNING, msg);
+             exceptions.add(e);
+         } else {
+             throw e;
+         }
+     }
+ 
+     List<IOException> getExceptions() {
+         return exceptions;
+     }
+ }
diff --cc tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/PDFEncodedStringDecoder.java
index 0000000,7b8cd2f..60e01c1
mode 000000,100644..100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/PDFEncodedStringDecoder.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/PDFEncodedStringDecoder.java
@@@ -1,0 -1,119 +1,119 @@@
+ /*
+  * Licensed to the Apache Software Foundation (ASF) under one or more
+  * contributor license agreements.  See the NOTICE file distributed with
+  * this work for additional information regarding copyright ownership.
+  * The ASF licenses this file to You under the Apache License, Version 2.0
+  * (the "License"); you may not use this file except in compliance with
+  * the License.  You may obtain a copy of the License at
+  *
+  *     http://www.apache.org/licenses/LICENSE-2.0
+  *
+  * Unless required by applicable law or agreed to in writing, software
+  * distributed under the License is distributed on an "AS IS" BASIS,
+  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  * See the License for the specific language governing permissions and
+  * limitations under the License.
+  */
+ 
+ package org.apache.tika.parser.pdf;
+ 
+ import static java.nio.charset.StandardCharsets.ISO_8859_1;
+ 
+ import java.io.ByteArrayInputStream;
+ import java.io.IOException;
+ import java.io.InputStream;
+ 
+ import org.apache.pdfbox.cos.COSString;
 -import org.apache.pdfbox.io.RandomAccessBuffer;
+ import org.apache.pdfbox.io.RandomAccessRead;
++import org.apache.pdfbox.io.RandomAccessReadBuffer;
+ import org.apache.pdfbox.pdfparser.COSParser;
+ 
+ /**
+  * In fairly rare cases, a PDF's XMP will contain a string that
+  * has incorrectly been encoded with PDFEncoding: an octal for non-ascii and
+  * ascii for ascii, e.g. "\376\377\000M\000i\000c\000r\000o\000s\000o\000f\000t\000"
+  * <p>
+  * This class can be used to decode those strings.
+  * <p>
+  * See TIKA-1678.  Many thanks to Andrew Jackson for raising this issue
+  * and Tilman Hausherr for the solution.
+  * <p>
+  * As of this writing, we are only handling strings that start with
+  * an encoded BOM.  Andrew Jackson found a handful of other examples (e.g.
+  * this ISO-8859-7 string:
+  * "Microsoft Word - \\323\\365\\354\\354\\345\\364\\357\\367\\336
+  * \\364\\347\\362 PRAKSIS \\363\\364\\357")
+  * that we aren't currently handling.
+  */
+ class PDFEncodedStringDecoder {
+ 
+     private static final String[] PDF_ENCODING_BOMS = {"\\376\\377", //UTF-16BE
+             "\\377\\376", //UTF-16LE
+             "\\357\\273\\277"//UTF-8
+     };
+ 
+     /**
+      * Does this string contain an octal-encoded UTF BOM?
+      * Call this statically to determine if you should bother creating a new parser to parse it.
+      *
+      * @param s
+      * @return
+      */
+     static boolean shouldDecode(String s) {
+         if (s == null || s.length() < 8) {
+             return false;
+         }
+         for (String BOM : PDF_ENCODING_BOMS) {
+             if (s.startsWith(BOM)) {
+                 return true;
+             }
+         }
+         return false;
+     }
+ 
+     /**
+      * This assumes that {@link #shouldDecode(String)} has been called
+      * and has returned true.  If you run this on a non-octal encoded string,
+      * disaster will happen!
+      *
+      * @param value
+      * @return
+      */
+     String decode(String value) {
+         try {
+             byte[] bytes = new String("(" + value + ")").getBytes(ISO_8859_1);
+             InputStream is = new ByteArrayInputStream(bytes);
 -            COSStringParser p = new COSStringParser(new RandomAccessBuffer(is));
++            COSStringParser p = new COSStringParser(new RandomAccessReadBuffer(is));
+             String parsed = p.myParseCOSString();
+             if (parsed != null) {
+                 return parsed;
+             }
+         } catch (IOException e) {
+             //oh well, we tried.
+         }
+         //just return value if something went wrong
+         return value;
+     }
+ 
+     static class COSStringParser extends COSParser {
+ 
+         COSStringParser(RandomAccessRead buffer) throws IOException {
+             super(buffer);
+         }
+ 
+         /**
+          * @return parsed string or null if something went wrong.
+          */
+         String myParseCOSString() {
+             try {
+                 COSString cosString = parseCOSString();
+                 if (cosString != null) {
+                     return cosString.getString();
+                 }
+             } catch (IOException e) {
+                 //swallow
+             }
+             return null;
+         }
+     }
+ }
diff --cc tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/PDFParser.java
index 0000000,c7eebe9..679e28c
mode 000000,100644..100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/PDFParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/PDFParser.java
@@@ -1,0 -1,673 +1,673 @@@
+ /*
+  * Licensed to the Apache Software Foundation (ASF) under one or more
+  * contributor license agreements.  See the NOTICE file distributed with
+  * this work for additional information regarding copyright ownership.
+  * The ASF licenses this file to You under the Apache License, Version 2.0
+  * (the "License"); you may not use this file except in compliance with
+  * the License.  You may obtain a copy of the License at
+  *
+  *     http://www.apache.org/licenses/LICENSE-2.0
+  *
+  * Unless required by applicable law or agreed to in writing, software
+  * distributed under the License is distributed on an "AS IS" BASIS,
+  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  * See the License for the specific language governing permissions and
+  * limitations under the License.
+  */
+ package org.apache.tika.parser.pdf;
+ 
+ import java.io.ByteArrayInputStream;
+ import java.io.IOException;
+ import java.io.InputStream;
+ import java.nio.file.Path;
+ import java.util.Arrays;
+ import java.util.Calendar;
+ import java.util.Collections;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.Set;
+ import javax.xml.stream.XMLStreamException;
+ 
+ import org.apache.commons.io.input.CloseShieldInputStream;
++import org.apache.pdfbox.Loader;
+ import org.apache.pdfbox.cos.COSArray;
+ import org.apache.pdfbox.cos.COSBase;
+ import org.apache.pdfbox.cos.COSDictionary;
+ import org.apache.pdfbox.cos.COSName;
+ import org.apache.pdfbox.io.MemoryUsageSetting;
+ import org.apache.pdfbox.pdmodel.PDDocument;
+ import org.apache.pdfbox.pdmodel.PDDocumentInformation;
+ import org.apache.pdfbox.pdmodel.documentinterchange.logicalstructure.PDStructureTreeRoot;
+ import org.apache.pdfbox.pdmodel.encryption.AccessPermission;
+ import org.apache.pdfbox.pdmodel.encryption.InvalidPasswordException;
+ import org.apache.pdfbox.pdmodel.fixup.AbstractFixup;
+ import org.apache.pdfbox.pdmodel.fixup.PDDocumentFixup;
+ import org.apache.pdfbox.pdmodel.fixup.processor.AcroFormDefaultsProcessor;
+ import org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm;
+ import org.xml.sax.ContentHandler;
+ import org.xml.sax.SAXException;
+ 
+ import org.apache.tika.config.Field;
+ import org.apache.tika.config.Initializable;
+ import org.apache.tika.config.InitializableProblemHandler;
+ import org.apache.tika.config.Param;
+ import org.apache.tika.exception.EncryptedDocumentException;
+ import org.apache.tika.exception.TikaConfigException;
+ import org.apache.tika.exception.TikaException;
+ import org.apache.tika.extractor.EmbeddedDocumentExtractor;
+ import org.apache.tika.io.TikaInputStream;
+ import org.apache.tika.metadata.AccessPermissions;
+ import org.apache.tika.metadata.Metadata;
+ import org.apache.tika.metadata.Office;
+ import org.apache.tika.metadata.OfficeOpenXMLCore;
+ import org.apache.tika.metadata.PDF;
+ import org.apache.tika.metadata.PagedText;
+ import org.apache.tika.metadata.TikaCoreProperties;
+ import org.apache.tika.mime.MediaType;
+ import org.apache.tika.parser.AbstractParser;
+ import org.apache.tika.parser.ParseContext;
+ import org.apache.tika.parser.PasswordProvider;
+ import org.apache.tika.sax.XHTMLContentHandler;
+ 
+ /**
+  * PDF parser.
+  * <p/>
+  * This parser can process also encrypted PDF documents if the required
+  * password is given as a part of the input metadata associated with a
+  * document. If no password is given, then this parser will try decrypting
+  * the document using the empty password that's often used with PDFs. If
+  * the PDF contains any embedded documents (for example as part of a PDF
+  * package) then this parser will use the {@link EmbeddedDocumentExtractor}
+  * to handle them.
+  * <p/>
+  * As of Tika 1.6, it is possible to extract inline images with
+  * the {@link EmbeddedDocumentExtractor} as if they were regular
+  * attachments.  By default, this feature is turned off because of
+  * the potentially enormous number and size of inline images.  To
+  * turn this feature on, see
+  * {@link PDFParserConfig#setExtractInlineImages(boolean)}.
+  * <p/>
+  * Please note that tables are not stored as entities within PDFs. It
+  * takes significant computation to identify and then correctly extract
+  * tables from PDFs. As of this writing, the {@link PDFParser} extracts
+  * text within tables, but it does not compute table cell boundaries or
+  * table row boundaries. Please see
+  * <a href="http://tabula.technology/">tabula</a> for one project that
+  * tries to maintain the structure of tables represented in PDFs.
+  */
+ public class PDFParser extends AbstractParser implements Initializable {
+ 
+     /**
+      * Metadata key for giving the document password to the parser.
+      *
+      * @since Apache Tika 0.5
+      * @deprecated Supply a {@link PasswordProvider} on the {@link ParseContext} instead
+      */
+     public static final String PASSWORD = "org.apache.tika.parser.pdf.password";
+     private static final Object[] LOCK = new Object[0];
+     private static final MediaType MEDIA_TYPE = MediaType.application("pdf");
+     /**
+      * Serial version UID
+      */
+     private static final long serialVersionUID = -752276948656079347L;
+     private static final Set<MediaType> SUPPORTED_TYPES = Collections.singleton(MEDIA_TYPE);
+     private static volatile boolean HAS_WARNED = false;
+     private PDFParserConfig defaultConfig = new PDFParserConfig();
+     private InitializableProblemHandler initializableProblemHandler = null;
+ 
+     public Set<MediaType> getSupportedTypes(ParseContext context) {
+         return SUPPORTED_TYPES;
+     }
+ 
+     public void parse(InputStream stream, ContentHandler handler, Metadata metadata,
+                       ParseContext context) throws IOException, SAXException, TikaException {
+ 
+         PDFParserConfig localConfig = defaultConfig;
+         PDFParserConfig userConfig = context.get(PDFParserConfig.class);
+         if (userConfig != null) {
+             localConfig = defaultConfig.cloneAndUpdate(userConfig);
+         }
+         if (localConfig.isSetKCMS()) {
+             System.setProperty("sun.java2d.cmm", "sun.java2d.cmm.kcms.KcmsServiceProvider");
+         }
+ 
+         PDDocument pdfDocument = null;
+ 
+         String password = "";
+         try {
+             TikaInputStream tstream = TikaInputStream.cast(stream);
+             password = getPassword(metadata, context);
+             MemoryUsageSetting memoryUsageSetting = MemoryUsageSetting.setupMainMemoryOnly();
+             if (localConfig.getMaxMainMemoryBytes() >= 0) {
+                 memoryUsageSetting =
+                         MemoryUsageSetting.setupMixed(localConfig.getMaxMainMemoryBytes());
+             }
+             if (tstream != null && tstream.hasFile()) {
+                 // File based -- send file directly to PDFBox
+                 pdfDocument =
 -                        getPDDocument(tstream.getPath(), password,
 -                                memoryUsageSetting, metadata, context);
++                        getPDDocument(tstream.getPath(), password, memoryUsageSetting, metadata, context);
+             } else {
+                 pdfDocument = getPDDocument(new CloseShieldInputStream(stream), password,
+                         memoryUsageSetting, metadata, context);
+             }
+             metadata.set(PDF.IS_ENCRYPTED, Boolean.toString(pdfDocument.isEncrypted()));
+ 
+             metadata.set(Metadata.CONTENT_TYPE, MEDIA_TYPE.toString());
+             extractMetadata(pdfDocument, metadata, context);
+             AccessChecker checker = localConfig.getAccessChecker();
+             checker.check(metadata);
+             if (handler != null) {
+                 boolean hasXFA = hasXFA(pdfDocument);
+                 metadata.set(PDF.HAS_XFA, Boolean.toString(hasXFA));
+                 boolean hasMarkedContent = hasMarkedContent(pdfDocument);
+                 metadata.set(PDF.HAS_MARKED_CONTENT, Boolean.toString(hasMarkedContent));
+                 if (shouldHandleXFAOnly(hasXFA, localConfig)) {
+                     handleXFAOnly(pdfDocument, handler, metadata, context);
+                 } else if (localConfig.getOcrStrategy()
+                         .equals(PDFParserConfig.OCR_STRATEGY.OCR_ONLY)) {
+                     OCR2XHTML.process(pdfDocument, handler, context, metadata, localConfig);
+                 } else if (hasMarkedContent && localConfig.isExtractMarkedContent()) {
+                     PDFMarkedContent2XHTML
+                             .process(pdfDocument, handler, context, metadata, localConfig);
+                 } else {
+                     PDF2XHTML.process(pdfDocument, handler, context, metadata, localConfig);
+                 }
+             }
+         } catch (InvalidPasswordException e) {
+             metadata.set(PDF.IS_ENCRYPTED, "true");
+             throw new EncryptedDocumentException(e);
+         } finally {
+             if (pdfDocument != null) {
+                 pdfDocument.close();
+             }
+         }
+     }
+ 
+     protected PDDocument getPDDocument(InputStream inputStream, String password,
+                                        MemoryUsageSetting memoryUsageSetting, Metadata metadata,
+                                        ParseContext parseContext) throws IOException {
 -        return PDDocument.load(inputStream, password, memoryUsageSetting);
++        return Loader.loadPDF(inputStream, password, memoryUsageSetting);
+     }
+ 
+     protected PDDocument getPDDocument(Path path, String password,
+                                        MemoryUsageSetting memoryUsageSetting, Metadata metadata,
+                                        ParseContext parseContext) throws IOException {
 -        return PDDocument.load(path.toFile(), password, memoryUsageSetting);
++        return Loader.loadPDF(path.toFile(), password, memoryUsageSetting);
+     }
+ 
+     private boolean hasMarkedContent(PDDocument pdDocument) {
+         PDStructureTreeRoot root = pdDocument.getDocumentCatalog().getStructureTreeRoot();
+         if (root == null) {
+             return false;
+         }
+         COSBase base = root.getK();
+         if (base == null) {
+             return false;
+         }
+         //TODO: are there other checks we need to perform?
+         if (base instanceof COSDictionary) {
+             if (((COSDictionary) base).keySet().size() > 0) {
+                 return true;
+             }
+         } else if (base instanceof COSArray) {
+             if (((COSArray) base).size() > 0) {
+                 return true;
+             }
+         }
+         return false;
+     }
+ 
+     private String getPassword(Metadata metadata, ParseContext context) {
+         String password = null;
+ 
+         // Did they supply a new style Password Provider?
+         PasswordProvider passwordProvider = context.get(PasswordProvider.class);
+         if (passwordProvider != null) {
+             password = passwordProvider.getPassword(metadata);
+         }
+ 
+         // Fall back on the old style metadata if set
+         if (password == null && metadata.get(PASSWORD) != null) {
+             password = metadata.get(PASSWORD);
+         }
+ 
+         // If no password is given, use an empty string as the default
+         if (password == null) {
+             password = "";
+         }
+         return password;
+     }
+ 
+ 
+     private void extractMetadata(PDDocument document, Metadata metadata, ParseContext context)
+             throws TikaException {
+ 
+         //first extract AccessPermissions
+         AccessPermission ap = document.getCurrentAccessPermission();
+         metadata.set(AccessPermissions.EXTRACT_FOR_ACCESSIBILITY,
+                 Boolean.toString(ap.canExtractForAccessibility()));
+         metadata.set(AccessPermissions.EXTRACT_CONTENT, Boolean.toString(ap.canExtractContent()));
+         metadata.set(AccessPermissions.ASSEMBLE_DOCUMENT,
+                 Boolean.toString(ap.canAssembleDocument()));
+         metadata.set(AccessPermissions.FILL_IN_FORM, Boolean.toString(ap.canFillInForm()));
+         metadata.set(AccessPermissions.CAN_MODIFY, Boolean.toString(ap.canModify()));
+         metadata.set(AccessPermissions.CAN_MODIFY_ANNOTATIONS,
+                 Boolean.toString(ap.canModifyAnnotations()));
+         metadata.set(AccessPermissions.CAN_PRINT, Boolean.toString(ap.canPrint()));
+         metadata.set(AccessPermissions.CAN_PRINT_DEGRADED, Boolean.toString(ap.canPrintDegraded()));
+ 
+         if (document.getDocumentCatalog().getLanguage() != null) {
+             metadata.set(TikaCoreProperties.LANGUAGE, document.getDocumentCatalog().getLanguage());
+         }
+         // TIKA-3246: Do this for the first call of getAcroForm(),
+         // subsequent calls should use the same fixup or null to avoid a default fixup.
+         // Do not call without parameters (would mean default fixup which is slower because
+         // it creates annotation appearances)
+         PDDocumentFixup fixup = new TikaAcroFormFixup(document);
+         PDAcroForm acroForm = document.getDocumentCatalog().getAcroForm(fixup);
+         if (acroForm != null && acroForm.getFields() != null && !acroForm.getFields().isEmpty()) {
+             metadata.set(PDF.HAS_ACROFORM_FIELDS, "true");
+         }
+         PDMetadataExtractor.extract(document.getDocumentCatalog().getMetadata(), metadata, context);
+ 
+         PDDocumentInformation info = document.getDocumentInformation();
+         metadata.set(PagedText.N_PAGES, document.getNumberOfPages());
+         PDMetadataExtractor.addMetadata(metadata, PDF.DOC_INFO_TITLE, info.getTitle());
+         PDMetadataExtractor.addMetadata(metadata, PDF.DOC_INFO_CREATOR, info.getAuthor());
+         //if this wasn't already set by xmp, use doc info
+         if (metadata.get(TikaCoreProperties.CREATOR) == null) {
+             PDMetadataExtractor.addMetadata(metadata, TikaCoreProperties.CREATOR, info.getAuthor());
+         }
+         if (metadata.get(TikaCoreProperties.TITLE) == null) {
+             PDMetadataExtractor.addMetadata(metadata, TikaCoreProperties.TITLE, info.getTitle());
+         }
+         PDMetadataExtractor.addMetadata(metadata, PDF.DOC_INFO_CREATOR_TOOL, info.getCreator());
+         PDMetadataExtractor
+                 .addMetadata(metadata, TikaCoreProperties.CREATOR_TOOL, info.getCreator());
+         PDMetadataExtractor.addMetadata(metadata, Office.KEYWORDS, info.getKeywords());
+         PDMetadataExtractor.addMetadata(metadata, PDF.DOC_INFO_KEY_WORDS, info.getKeywords());
+         PDMetadataExtractor.addMetadata(metadata, PDF.DOC_INFO_PRODUCER, info.getProducer());
+         PDMetadataExtractor.addMetadata(metadata, PDF.PRODUCER, info.getProducer());
+ 
+         PDMetadataExtractor.addMetadata(metadata, PDF.DOC_INFO_SUBJECT, info.getSubject());
+ 
+         PDMetadataExtractor.addMetadata(metadata, TikaCoreProperties.SUBJECT, info.getKeywords());
+         PDMetadataExtractor.addMetadata(metadata, TikaCoreProperties.SUBJECT, info.getSubject());
+         PDMetadataExtractor.addMetadata(metadata, OfficeOpenXMLCore.SUBJECT, info.getSubject());
+ 
+         PDMetadataExtractor.addMetadata(metadata, PDF.DOC_INFO_TRAPPED, info.getTrapped());
+         Calendar created = info.getCreationDate();
+         PDMetadataExtractor.addMetadata(metadata, PDF.DOC_INFO_CREATED, created);
+         PDMetadataExtractor.addMetadata(metadata, TikaCoreProperties.CREATED, created);
+         Calendar modified = info.getModificationDate();
+         PDMetadataExtractor.addMetadata(metadata, TikaCoreProperties.MODIFIED, modified);
+         PDMetadataExtractor.addMetadata(metadata, PDF.DOC_INFO_MODIFICATION_DATE, modified);
+ 
+         // All remaining metadata is custom
+         // Copy this over as-is
+         List<String> handledMetadata =
+                 Arrays.asList("Author", "Creator", "CreationDate", "ModDate", "Keywords",
+                         "Producer", "Subject", "Title", "Trapped");
+         for (COSName key : info.getCOSObject().keySet()) {
+             String name = key.getName();
+             if (!handledMetadata.contains(name)) {
+                 PDMetadataExtractor
+                         .addMetadata(metadata, name, info.getCOSObject().getDictionaryObject(key));
+                 PDMetadataExtractor.addMetadata(metadata, PDF.PDF_DOC_INFO_CUSTOM_PREFIX + name,
+                         info.getCOSObject().getDictionaryObject(key));
+             }
+         }
+ 
+         //try to get the various versions
+         //Caveats:
+         //    there is currently a fair amount of redundancy
+         //    TikaCoreProperties.FORMAT can be multivalued
+         //    There are also three potential pdf specific version keys:
+         //    pdf:PDFVersion, pdfa:PDFVersion, pdf:PDFExtensionVersion
+         metadata.set(PDF.PDF_VERSION, Float.toString(document.getDocument().getVersion()));
+         metadata.add(TikaCoreProperties.FORMAT.getName(), MEDIA_TYPE.toString() + "; version=" +
+                 Float.toString(document.getDocument().getVersion()));
+ 
+ 
+         //TODO: Let's try to move this into PDFBox.
+         //Attempt to determine Adobe extension level, if present:
+         COSDictionary root = document.getDocumentCatalog().getCOSObject();
+         COSDictionary extensions =
+                 (COSDictionary) root.getDictionaryObject(COSName.getPDFName("Extensions"));
+         if (extensions != null) {
+             for (COSName extName : extensions.keySet()) {
+                 // If it's an Adobe one, interpret it to determine the extension level:
+                 if (extName.equals(COSName.getPDFName("ADBE"))) {
+                     COSDictionary adobeExt =
+                             (COSDictionary) extensions.getDictionaryObject(extName);
+                     if (adobeExt != null) {
+                         String baseVersion =
+                                 adobeExt.getNameAsString(COSName.getPDFName("BaseVersion"));
+                         int el = adobeExt.getInt(COSName.getPDFName("ExtensionLevel"));
+                         //-1 is sentinel value that something went wrong in getInt
+                         if (el != -1) {
+                             metadata.set(PDF.PDF_EXTENSION_VERSION,
+                                     baseVersion + " Adobe Extension Level " + el);
+                             metadata.add(TikaCoreProperties.FORMAT.getName(),
+                                     MEDIA_TYPE.toString() + "; version=\"" + baseVersion +
+                                             " Adobe Extension Level " + el + "\"");
+                         }
+                     }
+                 } else {
+                     // WARN that there is an Extension, but it's not Adobe's, and so is a 'new'
+                     // format'.
+                     metadata.set("pdf:foundNonAdobeExtensionName", extName.getName());
+                 }
+             }
+         }
+     }
+ 
+ 
+     private boolean hasXFA(PDDocument pdDocument) {
+         return pdDocument.getDocumentCatalog() != null &&
+                 pdDocument.getDocumentCatalog().getAcroForm(null) != null &&
+                 pdDocument.getDocumentCatalog().getAcroForm(null).hasXFA();
+     }
+ 
+     private boolean shouldHandleXFAOnly(boolean hasXFA, PDFParserConfig config) {
+         return config.isIfXFAExtractOnlyXFA() && hasXFA;
+     }
+ 
+     private void handleXFAOnly(PDDocument pdDocument, ContentHandler handler, Metadata metadata,
+                                ParseContext context)
+             throws SAXException, IOException, TikaException {
+         XFAExtractor ex = new XFAExtractor();
+         XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+         xhtml.startDocument();
+         try (InputStream is = new ByteArrayInputStream(
+                 pdDocument.getDocumentCatalog().getAcroForm(null).getXFA().getBytes())) {
+             ex.extract(is, xhtml, metadata, context);
+         } catch (XMLStreamException e) {
+             throw new TikaException("XML error in XFA", e);
+         }
+         xhtml.endDocument();
+     }
+ 
+     public PDFParserConfig getPDFParserConfig() {
+         return defaultConfig;
+     }
+ 
+     public void setPDFParserConfig(PDFParserConfig config) {
+         this.defaultConfig = config;
+     }
+ 
+     /**
+      * @see #setEnableAutoSpace(boolean)
+      */
+     public boolean isEnableAutoSpace() {
+         return defaultConfig.isEnableAutoSpace();
+     }
+ 
+     /**
+      * If true (the default), the parser should estimate
+      * where spaces should be inserted between words.  For
+      * many PDFs this is necessary as they do not include
+      * explicit whitespace characters.
+      */
+     @Field
+     public void setEnableAutoSpace(boolean v) {
+         defaultConfig.setEnableAutoSpace(v);
+     }
+ 
+     /**
+      * If true, text in annotations will be extracted.
+      *
+      * @deprecated use {@link #getPDFParserConfig()}
+      */
+     public boolean isExtractAnnotationText() {
+         return defaultConfig.isExtractAnnotationText();
+     }
+ 
+     /**
+      * If true (the default), text in annotations will be
+      * extracted.
+      */
+     public void setExtractAnnotationText(boolean v) {
+         defaultConfig.setExtractAnnotationText(v);
+     }
+ 
+     /**
+      * @see #setSuppressDuplicateOverlappingText(boolean)
+      * @deprecated use {@link #getPDFParserConfig()}
+      */
+     public boolean isSuppressDuplicateOverlappingText() {
+         return defaultConfig.isSuppressDuplicateOverlappingText();
+     }
+ 
+     /**
+      * If true, the parser should try to remove duplicated
+      * text over the same region.  This is needed for some
+      * PDFs that achieve bolding by re-writing the same
+      * text in the same area.  Note that this can
+      * slow down extraction substantially (PDFBOX-956) and
+      * sometimes remove characters that were not in fact
+      * duplicated (PDFBOX-1155).  By default this is disabled.
+      */
+     @Field
+     public void setSuppressDuplicateOverlappingText(boolean v) {
+         defaultConfig.setSuppressDuplicateOverlappingText(v);
+     }
+ 
+     /**
+      * @see #setSortByPosition(boolean)
+      * @deprecated use {@link #getPDFParserConfig()}
+      */
+     public boolean isSortByPosition() {
+         return defaultConfig.isSortByPosition();
+     }
+ 
+     /**
+      * If true, sort text tokens by their x/y position
+      * before extracting text.  This may be necessary for
+      * some PDFs (if the text tokens are not rendered "in
+      * order"), while for other PDFs it can produce the
+      * wrong result (for example if there are 2 columns,
+      * the text will be interleaved).  Default is false.
+      */
+     @Field
+     public void setSortByPosition(boolean v) {
+         defaultConfig.setSortByPosition(v);
+     }
+ 
+     @Field
+     public void setOcrStrategy(String ocrStrategyString) {
+         defaultConfig.setOcrStrategy(ocrStrategyString);
+     }
+ 
+     @Field
+     public void setOcrImageType(String imageType) {
+         defaultConfig.setOcrImageType(imageType);
+     }
+ 
+     @Field
+     void setOcrDPI(int dpi) {
+         defaultConfig.setOcrDPI(dpi);
+     }
+ 
+     @Field
+     void setOcrImageQuality(float imageQuality) {
+         defaultConfig.setOcrImageQuality(imageQuality);
+     }
+ 
+     @Field
+     void setOcrImageFormatName(String formatName) {
+         defaultConfig.setOcrImageFormatName(formatName);
+     }
+ 
+     @Field
+     void setExtractBookmarksText(boolean extractBookmarksText) {
+         defaultConfig.setExtractBookmarksText(extractBookmarksText);
+     }
+ 
+     @Field
+     void setExtractInlineImages(boolean extractInlineImages) {
+         defaultConfig.setExtractInlineImages(extractInlineImages);
+     }
+ 
+     @Field
+     void setExtractInlineImageMetadataOnly(boolean extractInlineImageMetadataOnly) {
+         defaultConfig.setExtractInlineImageMetadataOnly(extractInlineImageMetadataOnly);
+     }
+ 
+     @Field
+     void setAverageCharTolerance(float averageCharTolerance) {
+         defaultConfig.setAverageCharTolerance(averageCharTolerance);
+     }
+ 
+     @Field
+     void setSpacingTolerance(float spacingTolerance) {
+         defaultConfig.setSpacingTolerance(spacingTolerance);
+     }
+ 
+ 
+     @Field
+     void setCatchIntermediateExceptions(boolean catchIntermediateExceptions) {
+         defaultConfig.setCatchIntermediateIOExceptions(catchIntermediateExceptions);
+     }
+ 
+     @Field
+     void setExtractAcroFormContent(boolean extractAcroFormContent) {
+         defaultConfig.setExtractAcroFormContent(extractAcroFormContent);
+     }
+ 
+     @Field
+     void setIfXFAExtractOnlyXFA(boolean ifXFAExtractOnlyXFA) {
+         defaultConfig.setIfXFAExtractOnlyXFA(ifXFAExtractOnlyXFA);
+     }
+ 
+     @Field
+     void setAllowExtractionForAccessibility(boolean allowExtractionForAccessibility) {
+         defaultConfig.setAccessChecker(new AccessChecker(allowExtractionForAccessibility));
+     }
+ 
+     @Field
+     void setExtractUniqueInlineImagesOnly(boolean extractUniqueInlineImagesOnly) {
+         defaultConfig.setExtractUniqueInlineImagesOnly(extractUniqueInlineImagesOnly);
+     }
+ 
+     @Field
+     void setExtractActions(boolean extractActions) {
+         defaultConfig.setExtractActions(extractActions);
+     }
+ 
+     @Field
+     void setExtractFontNames(boolean extractFontNames) {
+         defaultConfig.setExtractFontNames(extractFontNames);
+     }
+ 
+     @Field
+     void setSetKCMS(boolean setKCMS) {
+         defaultConfig.setSetKCMS(setKCMS);
+     }
+ 
+     @Field
+     void setDetectAngles(boolean detectAngles) {
+         defaultConfig.setDetectAngles(detectAngles);
+     }
+ 
+     @Field
+     void setExtractMarkedContent(boolean extractMarkedContent) {
+         defaultConfig.setExtractMarkedContent(extractMarkedContent);
+     }
+ 
+     @Field
+     void setInitializableProblemHander(String name) {
+         if ("ignore".equals(name)) {
+             setInitializableProblemHandler(InitializableProblemHandler.IGNORE);
+         } else if ("info".equalsIgnoreCase(name)) {
+             setInitializableProblemHandler(InitializableProblemHandler.INFO);
+         } else if ("warn".equalsIgnoreCase(name)) {
+             setInitializableProblemHandler(InitializableProblemHandler.WARN);
+         } else if ("throw".equalsIgnoreCase(name)) {
+             setInitializableProblemHandler(InitializableProblemHandler.THROW);
+         }
+     }
+ 
+     public void setInitializableProblemHandler(
+             InitializableProblemHandler initializableProblemHandler) {
+         this.initializableProblemHandler = initializableProblemHandler;
+     }
+ 
+     @Field
+     public void setDropThreshold(float dropThreshold) {
+         defaultConfig.setDropThreshold(dropThreshold);
+     }
+ 
+     @Field
+     public void setMaxMainMemoryBytes(long maxMainMemoryBytes) {
+         defaultConfig.setMaxMainMemoryBytes(maxMainMemoryBytes);
+     }
+ 
+     /**
+      * This is a no-op.  There is no need to initialize multiple fields.
+      * The regular field loading should happen without this.
+      *
+      * @param params params to use for initialization
+      * @throws TikaConfigException
+      */
+     @Override
+     public void initialize(Map<String, Param> params) throws TikaConfigException {
+         //no-op
+     }
+ 
+     @Override
+     public void checkInitialization(InitializableProblemHandler handler)
+             throws TikaConfigException {
+         //only check for these libraries once!
+         if (HAS_WARNED) {
+             return;
+         }
+         synchronized (LOCK) {
+             if (HAS_WARNED) {
+                 return;
+             }
+             StringBuilder sb = new StringBuilder();
+             try {
+                 Class.forName("com.github.jaiimageio.impl.plugins.tiff.TIFFImageWriter");
+             } catch (ClassNotFoundException e) {
+                 sb.append("TIFFImageWriter not loaded. tiff files will not be processed\n");
+                 sb.append("See https://pdfbox.apache.org/2.0/dependencies.html#jai-image-io\n");
+                 sb.append("for optional dependencies.\n");
+ 
+             }
+ 
+             try {
+                 Class.forName("com.github.jaiimageio.jpeg2000.impl.J2KImageReader");
+             } catch (ClassNotFoundException e) {
+                 sb.append("J2KImageReader not loaded. JPEG2000 files will not be processed.\n");
+                 sb.append("See https://pdfbox.apache.org/2.0/dependencies.html#jai-image-io\n");
+                 sb.append("for optional dependencies.\n");
+             }
+ 
+             if (sb.length() > 0) {
+                 InitializableProblemHandler localInitializableProblemHandler =
+                         (initializableProblemHandler == null) ? handler :
+                                 initializableProblemHandler;
+                 localInitializableProblemHandler
+                         .handleInitializableProblem("org.apache.tika.parsers.PDFParser",
+                                 sb.toString());
+             }
+             HAS_WARNED = true;
+         }
+     }
+ 
+     /**
+      * Copied from AcroformDefaultFixup minus generation of appearances and handling of orphan
+      * widgets, which we don't need.
+      */
+     static class TikaAcroFormFixup extends AbstractFixup {
+         TikaAcroFormFixup(PDDocument document) {
+             super(document);
+         }
+ 
+         @Override
+         public void apply() {
+             new AcroFormDefaultsProcessor(document).process();
+         }
+     }
+ }
diff --cc tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/test/java/org/apache/tika/parser/pdf/PDFParserTest.java
index 0000000,4ec104a..d3229ab
mode 000000,100644..100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/test/java/org/apache/tika/parser/pdf/PDFParserTest.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/test/java/org/apache/tika/parser/pdf/PDFParserTest.java
@@@ -1,0 -1,1385 +1,1387 @@@
+ /*
+  * Licensed to the Apache Software Foundation (ASF) under one or more
+  * contributor license agreements.  See the NOTICE file distributed with
+  * this work for additional information regarding copyright ownership.
+  * The ASF licenses this file to You under the Apache License, Version 2.0
+  * (the "License"); you may not use this file except in compliance with
+  * the License.  You may obtain a copy of the License at
+  *
+  *     http://www.apache.org/licenses/LICENSE-2.0
+  *
+  * Unless required by applicable law or agreed to in writing, software
+  * distributed under the License is distributed on an "AS IS" BASIS,
+  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  * See the License for the specific language governing permissions and
+  * limitations under the License.
+  */
+ package org.apache.tika.parser.pdf;
+ 
+ import static org.junit.Assert.assertArrayEquals;
+ import static org.junit.Assert.assertEquals;
+ import static org.junit.Assert.assertFalse;
+ import static org.junit.Assert.assertNotNull;
+ import static org.junit.Assert.assertNull;
+ import static org.junit.Assert.assertTrue;
+ 
+ import java.io.InputStream;
+ import java.util.Arrays;
+ import java.util.HashMap;
+ import java.util.HashSet;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.logging.Level;
+ import java.util.logging.Logger;
+ import java.util.regex.Matcher;
+ import java.util.regex.Pattern;
+ 
+ import org.apache.commons.io.IOUtils;
+ import org.apache.pdfbox.rendering.ImageType;
+ import org.junit.AfterClass;
+ import org.junit.BeforeClass;
+ import org.junit.Ignore;
+ import org.junit.Test;
+ import org.xml.sax.ContentHandler;
+ 
+ import org.apache.tika.Tika;
+ import org.apache.tika.TikaTest;
+ import org.apache.tika.config.TikaConfig;
+ import org.apache.tika.exception.AccessPermissionException;
+ import org.apache.tika.exception.EncryptedDocumentException;
+ import org.apache.tika.exception.TikaException;
+ import org.apache.tika.exception.ZeroByteFileException;
+ import org.apache.tika.extractor.DocumentSelector;
+ import org.apache.tika.metadata.Font;
+ import org.apache.tika.metadata.Metadata;
+ import org.apache.tika.metadata.Office;
+ import org.apache.tika.metadata.OfficeOpenXMLCore;
+ import org.apache.tika.metadata.PDF;
+ import org.apache.tika.metadata.TikaCoreProperties;
+ import org.apache.tika.metadata.XMP;
+ import org.apache.tika.metadata.XMPMM;
+ import org.apache.tika.mime.MediaType;
+ import org.apache.tika.parser.AutoDetectParser;
+ import org.apache.tika.parser.CompositeParser;
+ import org.apache.tika.parser.ParseContext;
+ import org.apache.tika.parser.Parser;
+ import org.apache.tika.parser.PasswordProvider;
+ import org.apache.tika.sax.BodyContentHandler;
+ import org.apache.tika.sax.ContentHandlerDecorator;
+ 
+ /**
+  * Test case for parsing pdf files.
+  */
+ public class PDFParserTest extends TikaTest {
+ 
+     public static Level PDFBOX_LOG_LEVEL = Level.INFO;
+ 
+     @BeforeClass
+     public static void setup() {
+         //remember default logging level, but turn off for PDFParserTest
+         PDFBOX_LOG_LEVEL = Logger.getLogger("org.apache.pdfbox").getLevel();
+         Logger.getLogger("org.apache.pdfbox").setLevel(Level.OFF);
+     }
+ 
+     @AfterClass
+     public static void tearDown() {
+         //return to regular logging level
+         Logger.getLogger("org.apache.pdfbox").setLevel(PDFBOX_LOG_LEVEL);
+     }
+ 
+     private static int substringCount(String needle, String haystack) {
+         int upto = -1;
+         int count = 0;
+         while (true) {
+             final int next = haystack.indexOf(needle, upto);
+             if (next == -1) {
+                 break;
+             }
+             count++;
+             upto = next + 1;
+         }
+ 
+         return count;
+     }
+ 
+     @Test
+     public void testPdfParsing() throws Exception {
+ 
+         XMLResult r = getXML("testPDF.pdf");
+         Metadata metadata = r.metadata;
+         String xml = r.xml;
+         assertEquals("application/pdf", metadata.get(Metadata.CONTENT_TYPE));
+         assertEquals("Bertrand Delacr\u00e9taz", metadata.get(TikaCoreProperties.CREATOR));
+         assertEquals("Firefox", metadata.get(TikaCoreProperties.CREATOR_TOOL));
+         assertEquals("Apache Tika - Apache Tika", metadata.get(TikaCoreProperties.TITLE));
+ 
+         // Can't reliably test dates yet - see TIKA-451
+ //        assertEquals("Sat Sep 15 10:02:31 BST 2007", metadata.get(Metadata.CREATION_DATE));
+ //        assertEquals("Sat Sep 15 10:02:31 BST 2007", metadata.get(Metadata.LAST_MODIFIED));
+ 
+         assertContains("Apache Tika", xml);
+         assertContains("Tika - Content Analysis Toolkit", xml);
+         assertContains("incubator", xml);
+         assertContains("Apache Software Foundation", xml);
+         // testing how the end of one paragraph is separated from start of the next one
+         assertTrue("should have word boundary after headline",
+                 !xml.contains("ToolkitApache"));
+         assertTrue("should have word boundary between paragraphs",
+                 !xml.contains("libraries.Apache"));
+     }
+ 
+     @Test
+     public void testFontNameExtraction() throws Exception {
+         PDFParserConfig config = new PDFParserConfig();
+         config.setExtractFontNames(true);
+         ParseContext pc = new ParseContext();
+         pc.set(PDFParserConfig.class, config);
+         XMLResult r = getXML("testPDFVarious.pdf", pc);
+         assertContains("ABCDEE+Calibri", r.metadata.get(Font.FONT_NAME));
+     }
+ 
+     @Test
+     public void testPdfParsingMetadataOnly() throws Exception {
+ 
+         Metadata metadata = getXML("testPDF.pdf").metadata;
+         assertEquals("application/pdf", metadata.get(Metadata.CONTENT_TYPE));
+         assertEquals("Bertrand Delacr\u00e9taz", metadata.get(TikaCoreProperties.CREATOR));
+         assertEquals("Firefox", metadata.get(TikaCoreProperties.CREATOR_TOOL));
+         assertEquals("Apache Tika - Apache Tika", metadata.get(TikaCoreProperties.TITLE));
+     }
+ 
+     @Test
+     public void testCustomMetadata() throws Exception {
+ 
+         XMLResult r = getXML("testPDF-custommetadata.pdf");
+         Metadata metadata = r.metadata;
+         assertEquals("application/pdf", metadata.get(Metadata.CONTENT_TYPE));
+         assertEquals("Document author", metadata.get(TikaCoreProperties.CREATOR));
+         assertEquals("Document title", metadata.get(TikaCoreProperties.TITLE));
+ 
+         assertEquals("Custom Value", metadata.get("Custom Property"));
+ 
+         assertEquals("Array Entry 1", metadata.get("Custom Array"));
+         assertEquals(2, metadata.getValues("Custom Array").length);
+         assertEquals("Array Entry 1", metadata.getValues("Custom Array")[0]);
+         assertEquals("Array Entry 2", metadata.getValues("Custom Array")[1]);
+ 
+         assertContains("Hello World!", r.xml);
+     }
+ 
+     /**
+      * PDFs can be "protected" with the default password. This means
+      * they're encrypted (potentially both text and metadata),
+      * but we can decrypt them easily.
+      */
+     @Test
+     public void testProtectedPDF() throws Exception {
+         XMLResult r = getXML("testPDF_protected.pdf");
+         Metadata metadata = r.metadata;
+         assertEquals("true", metadata.get("pdf:encrypted"));
+         assertEquals("application/pdf", metadata.get(Metadata.CONTENT_TYPE));
+         assertEquals("The Bank of England", metadata.get(TikaCoreProperties.CREATOR));
+         assertEquals("Speeches by Andrew G Haldane",
+                 metadata.get(OfficeOpenXMLCore.SUBJECT));
+         assertEquals(
+                 "Rethinking the Financial Network, Speech by Andrew G Haldane, " +
+                         "Executive Director, Financial Stability " +
+                         "delivered at the Financial Student " +
+                         "Association, Amsterdam on 28 April 2009",
+                 metadata.get(TikaCoreProperties.TITLE));
+ 
+         assertContains("RETHINKING THE FINANCIAL NETWORK", r.xml);
+         assertContains("On 16 November 2002", r.xml);
+         assertContains("In many important respects", r.xml);
+ 
+ 
+         // Try again with an explicit empty password
+         ParseContext context = new ParseContext();
+         context.set(PasswordProvider.class, new PasswordProvider() {
+             public String getPassword(Metadata metadata) {
+                 return "";
+             }
+         });
+         r = getXML("testPDF_protected.pdf", context);
+         metadata = r.metadata;
+         assertEquals("true", metadata.get("pdf:encrypted"));
+ 
+         assertEquals("application/pdf", metadata.get(Metadata.CONTENT_TYPE));
+         assertEquals("The Bank of England", metadata.get(TikaCoreProperties.CREATOR));
+         assertEquals("Speeches by Andrew G Haldane", metadata.get(OfficeOpenXMLCore.SUBJECT));
+         assertEquals(
+                 "Rethinking the Financial Network, Speech by Andrew G Haldane, " +
+                         "Executive Director, Financial Stability delivered at the " +
+                         "Financial Student Association, Amsterdam on 28 April 2009",
+                 metadata.get(TikaCoreProperties.TITLE));
+ 
+         assertContains("RETHINKING THE FINANCIAL NETWORK", r.xml);
+         assertContains("On 16 November 2002", r.xml);
+         assertContains("In many important respects", r.xml);
+ 
+         //now test wrong password
+         context.set(PasswordProvider.class, new PasswordProvider() {
+             public String getPassword(Metadata metadata) {
+                 return "WRONG!!!!";
+             }
+         });
+ 
+         boolean ex = false;
+         ContentHandler handler = new BodyContentHandler();
+         metadata = new Metadata();
+         try (InputStream stream = getResourceAsStream("/test-documents/testPDF_protected.pdf")) {
+             AUTO_DETECT_PARSER.parse(stream, handler, metadata, context);
+         } catch (EncryptedDocumentException e) {
+             ex = true;
+         }
+         assertTrue("encryption exception", ex);
+         assertEquals("application/pdf", metadata.get(Metadata.CONTENT_TYPE));
+         assertEquals("true", metadata.get("pdf:encrypted"));
+         //pdf:encrypted, X-Parsed-By and Content-Type
+         assertEquals("very little metadata should be parsed", 3, metadata.names().length);
+         assertEquals(0, handler.toString().length());
+     }
+ 
+     @Test
+     public void testTwoTextBoxes() throws Exception {
+         String content;
+         try (InputStream stream = getResourceAsStream(
+                 "/test-documents/testPDFTwoTextBoxes.pdf")) {
+             content = getText(stream, AUTO_DETECT_PARSER);
+         }
+         content = content.replaceAll("\\s+", " ");
+         assertContains(
+                 "Left column line 1 Left column line 2 Right column line 1 Right column line 2",
+                 content);
+     }
+ 
+     @Test
+     public void testVarious() throws Exception {
+         Metadata metadata = new Metadata();
+         String content;
+         try (InputStream stream = getResourceAsStream("/test-documents/testPDFVarious.pdf")) {
+             content = getText(stream, AUTO_DETECT_PARSER, metadata);
+         }
+         //content = content.replaceAll("\\s+"," ");
+         assertContains("Footnote appears here", content);
+         assertContains("This is a footnote.", content);
+         assertContains("This is the header text.", content);
+         assertContains("This is the footer text.", content);
+         assertContains("Here is a text box", content);
+         assertContains("Bold", content);
+         assertContains("italic", content);
+         assertContains("underline", content);
+         assertContains("superscript", content);
+         assertContains("subscript", content);
+         assertContains("Here is a citation:", content);
+         assertContains("Figure 1 This is a caption for Figure 1", content);
+         assertContains("(Kramer)", content);
+         assertContains("Row 1 Col 1 Row 1 Col 2 Row 1 Col 3 Row " +
+                         "2 Col 1 Row 2 Col 2 Row 2 Col 3",
+                 content.replaceAll("\\s+", " "));
+         assertContains("Row 1 column 1 Row 2 column 1 Row 1 column 2 Row 2 column 2",
+                 content.replaceAll("\\s+", " "));
+         assertContains("This is a hyperlink", content);
+         assertContains("Here is a list:", content);
+         for (int row = 1; row <= 3; row++) {
+             //assertContains("ยท\tBullet " + row, content);
+             //assertContains("\u00b7\tBullet " + row, content);
+             assertContains("Bullet " + row, content);
+         }
+         assertContains("Here is a numbered list:", content);
+         for (int row = 1; row <= 3; row++) {
+             //assertContains(row + ")\tNumber bullet " + row, content);
+             assertContains(row + ") Number bullet " + row, content);
+         }
+ 
+         for (int row = 1; row <= 2; row++) {
+             for (int col = 1; col <= 3; col++) {
+                 assertContains("Row " + row + " Col " + col, content);
+             }
+         }
+ 
+         assertContains("Keyword1 Keyword2", content);
+         assertEquals("Keyword1 Keyword2", metadata.get(Office.KEYWORDS));
+ 
+         assertContains("Subject is here", content);
+         assertEquals("Subject is here", metadata.get(OfficeOpenXMLCore.SUBJECT));
+ 
+         assertContains("Suddenly some Japanese text:", content);
+         // Special version of (GHQ)
+         assertContains("\uff08\uff27\uff28\uff31\uff09", content);
+         // 6 other characters
+         assertContains("\u30be\u30eb\u30b2\u3068\u5c3e" +
+                         "\u5d0e\u3001\u6de1\u3005\u3068\u6700\u671f",
+                 content);
+ 
+         assertContains("And then some Gothic text:", content);
+         // TODO: I saved the word doc as a PDF, but that
+         // process somehow, apparently lost the gothic
+         // chars, so we cannot test this here:
+         //assertContains("\uD800\uDF32\uD800\uDF3f\uD800\uDF44
+         // \uD800\uDF39\uD800\uDF43\uD800\uDF3A", content);
+     }
+ 
+     @Test
+     public void testAnnotations() throws Exception {
+         String content;
+         try (InputStream stream = getResourceAsStream("/test-documents/testAnnotations.pdf")) {
+             content = getText(stream, AUTO_DETECT_PARSER);
+         }
+         content = content.replaceAll("[\\s\u00a0]+", " ");
+         assertContains("Here is some text", content);
+         assertContains("Here is a comment", content);
+ 
+         // Test w/ annotation text disabled:
+         PDFParser pdfParser = new PDFParser();
+         pdfParser.getPDFParserConfig().setExtractAnnotationText(false);
+         try (InputStream stream = getResourceAsStream("/test-documents/testAnnotations.pdf")) {
+             content = getText(stream, pdfParser);
+         }
+         content = content.replaceAll("[\\s\u00a0]+", " ");
+         assertContains("Here is some text", content);
+         assertEquals(-1, content.indexOf("Here is a comment"));
+ 
+         // annotation text disabled through parsecontext
+         ParseContext context = new ParseContext();
+         PDFParserConfig config = new PDFParserConfig();
+         config.setExtractAnnotationText(false);
+         context.set(PDFParserConfig.class, config);
+         try (InputStream stream = getResourceAsStream("/test-documents/testAnnotations.pdf")) {
+             content = getText(stream, AUTO_DETECT_PARSER, context);
+         }
+         content = content.replaceAll("[\\s\u00a0]+", " ");
+         assertContains("Here is some text", content);
+         assertEquals(-1, content.indexOf("Here is a comment"));
+ 
+ 
+         // TIKA-738: make sure no extra </p> tags
+         String xml = getXML("testAnnotations.pdf").xml;
+         assertEquals(substringCount("<p>", xml), substringCount("</p>", xml));
+     }
+ 
+     // TIKA-981
+     @Test
+     public void testPopupAnnotation() throws Exception {
+         XMLResult r = getXML("testPopupAnnotation.pdf");
+         assertContains("this is the note", r.xml);
+         assertContains("igalsh", r.xml);
+     }
+ 
+     @Test
+     public void testEmbeddedPDFs() throws Exception {
+         String xml = getXML("testPDFPackage.pdf").xml;
+         assertContains("PDF1", xml);
+         assertContains("PDF2", xml);
+     }
+ 
+     @Test
+     public void testPageNumber() throws Exception {
+         final XMLResult result = getXML("testPageNumber.pdf");
+         final String content = result.xml.replaceAll("\\s+", "");
+         assertContains("<p>1</p>", content);
+     }
+ 
+     /**
+      * Test to ensure that Links are extracted from the text
+      * <p/>
+      * Note - the PDF contains the text "This is a hyperlink" which
+      * a hyperlink annotation, linking to the tika site, on it. This
+      * test will need updating when we're able to apply the annotation
+      * to the text itself, rather than following on afterwards as now
+      */
+     @Test
+     public void testLinks() throws Exception {
+         final XMLResult result = getXML("testPDFVarious.pdf");
+         assertContains("<div class=\"annotation\"><a href=\"http://tika.apache.org/\">" +
+                 "http://tika.apache.org/</a></div>", result.xml);
+     }
+ 
+     @Test
+     public void testDisableAutoSpace() throws Exception {
+         PDFParser parser = new PDFParser();
+         parser.getPDFParserConfig().setEnableAutoSpace(false);
+         XMLResult r = getXML("testExtraSpaces.pdf", parser);
+ 
+         String content = r.xml.replaceAll("[\\s\u00a0]+", " ");
+         // Text is correct when autoSpace is off:
+         assertContains("Here is some formatted text", content);
+ 
+         parser.getPDFParserConfig().setEnableAutoSpace(true);
+         r = getXML("testExtraSpaces.pdf", parser);
+         content = r.xml.replaceAll("[\\s\u00a0]+", " ");
+         // Text is correct when autoSpace is off:
+ 
+         // Text has extra spaces when autoSpace is on
+         assertEquals(-1, content.indexOf("Here is some formatted text"));
+ 
+         //now try with autodetect
+         ParseContext context = new ParseContext();
+         PDFParserConfig config = new PDFParserConfig();
+         context.set(PDFParserConfig.class, config);
+         //default is true
+         r = getXML("testExtraSpaces.pdf", context);
+         content = r.xml.replaceAll("[\\s\u00a0]+", " ");
+         // Text has extra spaces when autoSpace is on
+         assertEquals(-1, content.indexOf("Here is some formatted text"));
+ 
+         config.setEnableAutoSpace(false);
+         r = getXML("testExtraSpaces.pdf", parser, context);
+         content = r.xml.replaceAll("[\\s\u00a0]+", " ");
+ 
+         // Text is correct when autoSpace is off:
+         assertContains("Here is some formatted text", content);
+ 
+     }
+ 
+     @Test
+     public void testDuplicateOverlappingText() throws Exception {
+         PDFParser parser = new PDFParser();
+         // Default is false (keep overlapping text):
+         XMLResult r = getXML("testOverlappingText.pdf", parser);
+         assertContains("Text the first timeText the second time", r.xml);
+ 
+         parser.getPDFParserConfig().setSuppressDuplicateOverlappingText(true);
+         r = getXML("testOverlappingText.pdf", parser);
+         // "Text the first" was dedup'd:
+         assertContains("Text the first timesecond time", r.xml);
+ 
+         //now try with autodetect
+         ParseContext context = new ParseContext();
+         PDFParserConfig config = new PDFParserConfig();
+         context.set(PDFParserConfig.class, config);
+         r = getXML("testOverlappingText.pdf", context);
+         // Default is false (keep overlapping text):
+         assertContains("Text the first timeText the second time", r.xml);
+ 
+         config.setSuppressDuplicateOverlappingText(true);
+         r = getXML("testOverlappingText.pdf", context);
+         // "Text the first" was dedup'd:
+         assertContains("Text the first timesecond time", r.xml);
+ 
+     }
+ 
+     @Test
+     public void testSortByPosition() throws Exception {
+         PDFParser parser = new PDFParser();
+         parser.getPDFParserConfig().setEnableAutoSpace(false);
+         InputStream stream = getResourceAsStream("/test-documents/testPDFTwoTextBoxes.pdf");
+         // Default is false (do not sort):
+         String content = getText(stream, parser);
+         content = content.replaceAll("\\s+", " ");
+         assertContains(
+                 "Left column line 1 Left column line 2 Right column line 1 Right column line 2",
+                 content);
+ 
+         parser.setSortByPosition(true);
+         stream = getResourceAsStream("/test-documents/testPDFTwoTextBoxes.pdf");
+         content = getText(stream, parser);
+         content = content.replaceAll("\\s+", " ");
+         // Column text is now interleaved:
+         assertContains(
+                 "Left column line 1 Right column line 1 Left colu mn line 2 Right column line 2",
+                 content);
+ 
+         //now try setting autodetect via parsecontext
+         ParseContext context = new ParseContext();
+         PDFParserConfig config = new PDFParserConfig();
+         context.set(PDFParserConfig.class, config);
+         // Default is false (do not sort):
+         content = getText("testPDFTwoTextBoxes.pdf", new Metadata(), context);
+         content = content.replaceAll("\\s+", " ");
+         assertContains(
+                 "Left column line 1 Left column line 2 Right column line 1 Right column line 2",
+                 content);
+ 
+         config.setSortByPosition(true);
+         context.set(PDFParserConfig.class, config);
+         stream = getResourceAsStream("/test-documents/testPDFTwoTextBoxes.pdf");
+         content = getText("testPDFTwoTextBoxes.pdf", new Metadata(), context);
+         content = content.replaceAll("\\s+", " ");
+         // Column text is now interleaved:
+         assertContains(
+                 "Left column line 1 Right column line 1 Left colu mn line 2 Right column line 2",
+                 content);
+ 
+     }
+ 
+     // TIKA-1035
+     @Test
+     public void testBookmarks() throws Exception {
+         String xml = getXML("testPDF_bookmarks.pdf").xml;
+         int i = xml.indexOf("Denmark bookmark is here");
+         int j = xml.indexOf("</body>");
+         assertTrue(i != -1);
+         assertTrue(j != -1);
+         assertTrue(i < j);
+     }
+ 
+     // TIKA-2303
+     @Test
+     public void testTurningOffBookmarks() throws Exception {
+         PDFParserConfig config = new PDFParserConfig();
+         config.setExtractBookmarksText(false);
+         ParseContext parseContext = new ParseContext();
+         parseContext.set(PDFParserConfig.class, config);
+         String xml = getXML("testPDF_bookmarks.pdf", parseContext).xml;
+         assertNotContained("Denmark bookmark is here", xml);
+     }
+ 
+ 
+     // TIKA-973
+     //commented out until test documents that are unambiguously
+     //consistent with Apache License v2.0 are contributed.
+     //TODO: add back test for AcroForm extraction; test document should include
+     //recursive forms
+ /*    public void testAcroForm() throws Exception{
+        Parser p = new AutoDetectParser();
+        ParseContext context = new ParseContext();
+        InputStream stream = getResourceAsStream("/test-documents/testPDF_acroForm1.pdf");
+        String txt = getText(stream, p, context);
+        stream.close();
+ 
+        //simple first level form contents
+        assertContains("to: John Doe", txt);
+        //checkbox
+        assertContains("xpackaging: Yes", txt);
+        
+        //this guarantees that the form processor
+        //worked recursively at least once...i.e. it didn't just
+        //take the first form
+        stream = getResourceAsStream("/test-documents/testPDF_acroForm2.pdf");
+        txt = getText(stream, p, context);
+        stream.close();
+        assertContains("123 Main St.", txt);
+        
+        
+        //now test with nonsequential parser
+        PDFParserConfig config = new PDFParserConfig();
+        config.setUseNonSequentialParser(true);
+        context.set(PDFParserConfig.class, config);
+        stream = getResourceAsStream("/test-documents/testPDF_acroForm1.pdf");
+        txt = getText(stream, p, context);
+        stream.close();
+        
+        //simple first level form contents
+        assertContains("to: John Doe", txt);
+        //checkbox
+        assertContains("xpackaging: Yes", txt);
+        
+        //this guarantees that the form processor
+        //worked recursively at least once...i.e. it didn't just
+        //take the first form
+        stream = getResourceAsStream("/test-documents/testPDF_acroForm2.pdf");
+        txt = getText(stream, p, context);
+        assertContains("123 Main St.", txt);
+        stream.close();     
+     }
+ */
+ 
+     //TIKA-1226
+     @Test
+     public void testSignatureInAcroForm() throws Exception {
+         //The current test doc does not contain any content in the signature area.
+         //This just tests that a RuntimeException is not thrown.
+         //TODO: find a better test file for this issue.
+         XMLResult result = getXML("testPDF_acroform3.pdf");
+         Metadata m = result.metadata;
+         assertEquals("true", m.get(PDF.HAS_XMP));
+         assertEquals("true", m.get(PDF.HAS_ACROFORM_FIELDS));
+         assertEquals("false", m.get(PDF.HAS_XFA));
+         assertTrue("found", (result.xml.contains("<li>aTextField: TIKA-1226</li>")));
+     }
+ 
+     @Test
+     public void testSingleCloseDoc() throws Exception {
+         //TIKA-1341
+         Metadata m = new Metadata();
+         ParseContext c = new ParseContext();
+         ContentHandler h = new EventCountingHandler();
+         try (InputStream is = getResourceAsStream("/test-documents/testPDFTripleLangTitle.pdf")) {
+             AUTO_DETECT_PARSER.parse(is, h, m, c);
+         }
+         assertEquals(1, ((EventCountingHandler) h).getEndDocument());
+     }
+ 
+     @Test
+     public void testVersions() throws Exception {
+ 
+         Map<String, String> dcFormat = new HashMap<>();
+         dcFormat.put("4.x", "application/pdf; version=1.3");
+         dcFormat.put("5.x", "application/pdf; version=1.4");
+         dcFormat.put("6.x", "application/pdf; version=1.5");
+         dcFormat.put("7.x", "application/pdf; version=1.6");
+         dcFormat.put("8.x", "application/pdf; version=1.7");
+         dcFormat.put("9.x", "application/pdf; version=1.7");
+         dcFormat.put("10.x", "application/pdf; version=1.7");
+         dcFormat.put("11.x.PDFA-1b", "application/pdf; version=1.7");
+ 
+         Map<String, String> pdfVersions = new HashMap<>();
+         pdfVersions.put("4.x", "1.3");
+         pdfVersions.put("5.x", "1.4");
+         pdfVersions.put("6.x", "1.5");
+         pdfVersions.put("7.x", "1.6");
+         pdfVersions.put("8.x", "1.7");
+         pdfVersions.put("9.x", "1.7");
+         pdfVersions.put("10.x", "1.7");
+         pdfVersions.put("11.x.PDFA-1b", "1.7");
+ 
+         Map<String, String> pdfExtensionVersions = new HashMap<>();
+         pdfExtensionVersions.put("9.x", "1.7 Adobe Extension Level 3");
+         pdfExtensionVersions.put("10.x", "1.7 Adobe Extension Level 8");
+         pdfExtensionVersions.put("11.x.PDFA-1b", "1.7 Adobe Extension Level 8");
+ 
+         for (Map.Entry<String, String> e : dcFormat.entrySet()) {
+             String fName = "testPDF_Version." + e.getKey() + ".pdf";
+ 
+             XMLResult r = getXML(fName);
+             boolean foundDC = false;
+             String[] vals = r.metadata.getValues("dc:format");
+             for (String v : vals) {
+                 if (v.equals(e.getValue())) {
+                     foundDC = true;
+                     break;
+                 }
+             }
+             assertTrue("dc:format ::" + e.getValue(), foundDC);
+             String extensionVersionTruth = pdfExtensionVersions.get(e.getKey());
+             if (extensionVersionTruth != null) {
+                 assertEquals("pdf:PDFExtensionVersion :: " + extensionVersionTruth,
+                         extensionVersionTruth, r.metadata.get("pdf:PDFExtensionVersion"));
+             }
+             assertEquals("pdf:PDFVersion", pdfVersions.get(e.getKey()),
+                     r.metadata.get("pdf:PDFVersion"));
+         }
+         //now test full 11.x
+         XMLResult r = getXML("testPDF_Version.11.x.PDFA-1b.pdf");
+         Set<String> versions = new HashSet<>(Arrays.asList(r.metadata.getValues("dc:format")));
+ 
+         for (String hit : new String[]{"application/pdf; version=1.7",
+                 "application/pdf; version=\"A-1b\"",
+                 "application/pdf; version=\"1.7 Adobe Extension Level 8\""}) {
+             assertTrue(hit, versions.contains(hit));
+         }
+ 
+         assertEquals("pdfaid:conformance", r.metadata.get("pdfaid:conformance"), "B");
+         assertEquals("pdfaid:part", r.metadata.get("pdfaid:part"), "1");
+     }
+ 
+     @Test
+     public void testMultipleAuthors() throws Exception {
+ 
+         XMLResult r = getXML("testPDF_twoAuthors.pdf");
+         List<String> authors = Arrays.asList(r.metadata.getValues(TikaCoreProperties.CREATOR));
+         assertContains("Sample Author 1", authors);
+         assertContains("Sample Author 2", authors);
+ 
+     }
+ 
+     //STUB test for once TIKA-1295 is fixed
+     @Test
+     public void testMultipleTitles() throws Exception {
+         XMLResult r = getXML("testPDFTripleLangTitle.pdf");
+         //TODO: add other tests as part of TIKA-1295
+         //dc:title-fr-ca (or whatever we decide) should be "Bonjour World"
+         //dc:title-zh-ch is currently hosed...bug in PDFBox while injecting xmp?
+         //
+         assertEquals("Hello World", r.metadata.get("dc:title"));
+     }
+ 
+     @Test
+     public void testInlineSelector() throws Exception {
+ 
+         PDFParserConfig config = new PDFParserConfig();
+         config.setExtractInlineImages(true);
+         config.setExtractUniqueInlineImagesOnly(false);
+         ParseContext context = new ParseContext();
+         context.set(org.apache.tika.parser.pdf.PDFParserConfig.class, config);
+ 
+         List<Metadata> metadatas = getRecursiveMetadata("testPDF_childAttachments.pdf", context);
+         int inline = 0;
+         int attach = 0;
+         for (Metadata m : metadatas) {
+             String v = m.get(TikaCoreProperties.EMBEDDED_RESOURCE_TYPE);
+             if (v != null) {
+                 if (v.equals(TikaCoreProperties.EmbeddedResourceType.INLINE.toString())) {
+                     inline++;
+                 } else if (v
+                         .equals(TikaCoreProperties.EmbeddedResourceType.ATTACHMENT.toString())) {
+                     attach++;
+                 }
+             }
+         }
+         assertEquals(2, inline);
+         assertEquals(2, attach);
+ 
+         //now try turning off inline
+ 
+         context.set(org.apache.tika.extractor.DocumentSelector.class, new AvoidInlineSelector());
+         inline = 0;
+         attach = 0;
+ 
+         metadatas = getRecursiveMetadata("testPDF_childAttachments.pdf", context);
+         for (Metadata m : metadatas) {
+             String v = m.get(TikaCoreProperties.EMBEDDED_RESOURCE_TYPE);
+             if (v != null) {
+                 if (v.equals(TikaCoreProperties.EmbeddedResourceType.INLINE.toString())) {
+                     inline++;
+                 } else if (v
+                         .equals(TikaCoreProperties.EmbeddedResourceType.ATTACHMENT.toString())) {
+                     attach++;
+                 }
+             }
+         }
+         assertEquals(0, inline);
+         assertEquals(2, attach);
+ 
+     }
+ 
+ 
+     @Test
+     public void testInlineConfig() throws Exception {
+ 
+         List<Metadata> metadatas = getRecursiveMetadata("testPDF_childAttachments.pdf");
+         int inline = 0;
+         int attach = 0;
+         for (Metadata m : metadatas) {
+             String v = m.get(TikaCoreProperties.EMBEDDED_RESOURCE_TYPE);
+             if (v != null) {
+                 if (v.equals(TikaCoreProperties.EmbeddedResourceType.INLINE.toString())) {
+                     inline++;
+                 } else if (v
+                         .equals(TikaCoreProperties.EmbeddedResourceType.ATTACHMENT.toString())) {
+                     attach++;
+                 }
+             }
+         }
+         assertEquals(0, inline);
+         assertEquals(2, attach);
+ 
+         //now try turning off inline
+         PDFParserConfig config = new PDFParserConfig();
+         config.setExtractInlineImages(true);
+         config.setExtractUniqueInlineImagesOnly(false);
+ 
+         ParseContext context = new ParseContext();
+         context.set(org.apache.tika.parser.pdf.PDFParserConfig.class, config);
+         inline = 0;
+         attach = 0;
+ 
+         metadatas = getRecursiveMetadata("testPDF_childAttachments.pdf", context);
+         for (Metadata m : metadatas) {
+             String v = m.get(TikaCoreProperties.EMBEDDED_RESOURCE_TYPE);
+             if (v != null) {
+                 if (v.equals(TikaCoreProperties.EmbeddedResourceType.INLINE.toString())) {
+                     inline++;
+                 } else if (v
+                         .equals(TikaCoreProperties.EmbeddedResourceType.ATTACHMENT.toString())) {
+                     attach++;
+                 }
+             }
+         }
+         assertEquals(2, inline);
+         assertEquals(2, attach);
+     }
+ 
+     @Test //TIKA-1376
+     public void testEmbeddedFileNameExtraction() throws Exception {
+         List<Metadata> metadatas = getRecursiveMetadata("testPDF_multiFormatEmbFiles.pdf");
+         assertEquals("metadata size", 5, metadatas.size());
+         Metadata firstAttachment = metadatas.get(1);
+         assertEquals("attachment file name", "Test.txt",
+                 firstAttachment.get(TikaCoreProperties.RESOURCE_NAME_KEY));
+     }
+ 
+     @Test //TIKA-1427
+     public void testEmbeddedFileMarkup() throws Exception {
+         ParseContext context = new ParseContext();
+         context.set(org.apache.tika.parser.Parser.class, AUTO_DETECT_PARSER);
+ 
+         PDFParserConfig config = new PDFParserConfig();
+         config.setExtractInlineImages(true);
+         config.setExtractUniqueInlineImagesOnly(false);
+         context.set(org.apache.tika.parser.pdf.PDFParserConfig.class, config);
+ 
+         XMLResult r = getXML("testPDF_childAttachments.pdf", context);
+         //regular attachment
+         assertContains("<div source=\"attachment\" class=\"embedded\" id=\"Unit10.doc\" />", r.xml);
+         //inline image
+         assertContains("<img src=\"embedded:image1.tif\" alt=\"image1.tif\" />", r.xml);
+ 
+         //doc embedded inside an annotation
+         r = getXML("testPDFFileEmbInAnnotation.pdf");
+         assertContains("<div source=\"annotationFileAttachment\" class=\"embedded\" id=\"Excel" +
+                 ".xlsx\" />", r.xml);
+     }
+ 
+     //Access checker tests
 -
 -    @Test
++    @Test()
+     public void testLegacyAccessChecking() throws Exception {
++
+         //test that default behavior doesn't throw AccessPermissionException
 -        for (String file : new String[]{"testPDF_no_extract_no_accessibility_owner_empty.pdf",
 -                "testPDF_no_extract_yes_accessibility_owner_empty.pdf",}) {
++        for (String file : new String[]{
++                "testPDF_no_extract_no_accessibility_owner_empty.pdf",
++                "testPDF_no_extract_yes_accessibility_owner_empty.pdf",
++                }) {
+             String xml = getXML(file).xml;
+             assertContains("Hello World", xml);
+         }
+ 
+         //now try with the user password
+         PasswordProvider provider = new PasswordProvider() {
+             @Override
+             public String getPassword(Metadata metadata) {
+                 return "user";
+             }
+         };
+ 
+         ParseContext context = new ParseContext();
+         context.set(PasswordProvider.class, provider);
+ 
+         for (String path : new String[]{"testPDF_no_extract_no_accessibility_owner_user.pdf",
+                 "testPDF_no_extract_yes_accessibility_owner_user.pdf",}) {
+             assertContains("Hello World", getXML(path, context).xml);
+         }
+     }
+ 
+     @Test
+     public void testAccessCheckingEmptyPassword() throws Exception {
+         PDFParserConfig config = new PDFParserConfig();
+ 
+         //don't allow extraction, not even for accessibility
+         config.setAccessChecker(new AccessChecker(false));
+         ParseContext context = new ParseContext();
+         context.set(PDFParserConfig.class, config);
+ 
+         //test exception for empty password
+         for (String path : new String[]{"testPDF_no_extract_no_accessibility_owner_empty.pdf",
+                 "testPDF_no_extract_yes_accessibility_owner_empty.pdf",}) {
+             assertException("/test-documents/" + path, AUTO_DETECT_PARSER, context,
+                     AccessPermissionException.class);
+         }
+ 
+         config.setAccessChecker(new AccessChecker(true));
+         assertException("/test-documents/" + "testPDF_no_extract_no_accessibility_owner_empty.pdf",
+                 AUTO_DETECT_PARSER, context, AccessPermissionException.class);
+ 
+         assertContains("Hello World",
+                 getXML("testPDF_no_extract_yes_accessibility_owner_empty.pdf", context).xml);
+     }
+ 
+     @Test
+     public void testAccessCheckingUserPassword() throws Exception {
+         ParseContext context = new ParseContext();
+ 
+         PDFParserConfig config = new PDFParserConfig();
+         //don't allow extraction, not even for accessibility
+         config.setAccessChecker(new AccessChecker(false));
+         PasswordProvider passwordProvider = new PasswordProvider() {
+             @Override
+             public String getPassword(Metadata metadata) {
+                 return "user";
+             }
+         };
+ 
+         context.set(PasswordProvider.class, passwordProvider);
+         context.set(PDFParserConfig.class, config);
+ 
+         //test bad passwords
+         for (String path : new String[]{"testPDF_no_extract_no_accessibility_owner_empty.pdf",
+                 "testPDF_no_extract_yes_accessibility_owner_empty.pdf",}) {
+             assertException("/test-documents/" + path, AUTO_DETECT_PARSER, context,
+                     EncryptedDocumentException.class);
+         }
+ 
+         //bad password is still a bad password
+         config.setAccessChecker(new AccessChecker(true));
+         for (String path : new String[]{"testPDF_no_extract_no_accessibility_owner_empty.pdf",
+                 "testPDF_no_extract_yes_accessibility_owner_empty.pdf",}) {
+             assertException("/test-documents/" + path, AUTO_DETECT_PARSER, context,
+                     EncryptedDocumentException.class);
+         }
+ 
+         //now test documents that require this "user" password
+         assertException("/test-documents/" + "testPDF_no_extract_no_accessibility_owner_user.pdf",
+                 AUTO_DETECT_PARSER, context, AccessPermissionException.class);
+ 
+         assertContains("Hello World",
+                 getXML("testPDF_no_extract_yes_accessibility_owner_user.pdf", context).xml);
+ 
+         config.setAccessChecker(new AccessChecker(false));
+         for (String path : new String[]{"testPDF_no_extract_no_accessibility_owner_user.pdf",
+                 "testPDF_no_extract_yes_accessibility_owner_user.pdf",}) {
+             assertException("/test-documents/" + path, AUTO_DETECT_PARSER, context,
+                     AccessPermissionException.class);
+         }
+     }
+ 
+     @Test
+     public void testAccessCheckingOwnerPassword() throws Exception {
+         ParseContext context = new ParseContext();
+ 
+         PDFParserConfig config = new PDFParserConfig();
+         //don't allow extraction, not even for accessibility
+         config.setAccessChecker(new AccessChecker(true));
+         PasswordProvider passwordProvider = new PasswordProvider() {
+             @Override
+             public String getPassword(Metadata metadata) {
+                 return "owner";
+             }
+         };
+ 
+         context.set(PasswordProvider.class, passwordProvider);
+         context.set(PDFParserConfig.class, config);
+ 
+         //with owner's password, text can be extracted, no matter the
+         // AccessibilityChecker's settings
+         for (String path : new String[]{"testPDF_no_extract_no_accessibility_owner_user.pdf",
+                 "testPDF_no_extract_yes_accessibility_owner_user.pdf",
+                 "testPDF_no_extract_no_accessibility_owner_empty.pdf",
+                 "testPDF_no_extract_yes_accessibility_owner_empty.pdf",}) {
+ 
+             assertContains("Hello World", getXML(path, context).xml);
+         }
+ 
+         //really, with owner's password, all extraction is allowed
+         config.setAccessChecker(new AccessChecker(false));
+         for (String path : new String[]{"testPDF_no_extract_no_accessibility_owner_user.pdf",
+                 "testPDF_no_extract_yes_accessibility_owner_user.pdf",
+                 "testPDF_no_extract_no_accessibility_owner_empty.pdf",
+                 "testPDF_no_extract_yes_accessibility_owner_empty.pdf",}) {
+             assertContains("Hello World", getXML(path, context).xml);
+         }
+     }
+ 
+     @Test
+     public void testNoXMP() throws Exception {
+         assertEquals("false", getXML("testPDF.pdf").metadata.get(PDF.HAS_XMP));
+     }
+ 
+     @Test
+     public void testPDFEncodedStringsInXMP() throws Exception {
+         //TIKA-1678
+         XMLResult r = getXML("testPDF_PDFEncodedStringInXMP.pdf");
+         assertEquals("Microsoft", r.metadata.get(TikaCoreProperties.TITLE));
+     }
+ 
+     @Test
+     public void testXFAExtractionBasic() throws Exception {
+         XMLResult r = getXML("testPDF_XFA_govdocs1_258578.pdf");
+         Metadata m = r.metadata;
+         assertEquals("true", m.get(PDF.HAS_XFA));
+         assertEquals("true", m.get(PDF.HAS_ACROFORM_FIELDS));
+         assertEquals("true", m.get(PDF.HAS_XMP));
+         //contains content existing only in the "regular" pdf
+         assertContains("Mount Rushmore National Memorial", r.xml);
+         //contains xfa fields and data
+         assertContains("<li fieldName=\"School_Name\">School Name: my_school</li>", r.xml);
+     }
+ 
+     @Test
+     public void testXFAOnly() throws Exception {
+         ParseContext context = new ParseContext();
+         PDFParserConfig config = new PDFParserConfig();
+         config.setIfXFAExtractOnlyXFA(true);
+         context.set(PDFParserConfig.class, config);
+         String xml = getXML("testPDF_XFA_govdocs1_258578.pdf", context).xml;
+         assertContains("<body><div class=\"xfa_content\">", xml);
+         assertContains("<li fieldName=\"Room_1\">Room [1]: my_room1</li>", xml);
+ 
+         assertNotContained("Mount Rushmore National Memorial", xml);
+     }
+ 
+     @Test
+     public void testXMPMM() throws Exception {
+ 
+         Metadata m = getXML("testPDF_twoAuthors.pdf").metadata;
+         assertEquals("uuid:0e46913c-72b9-40c0-8232-69e362abcd1e", m.get(XMPMM.DOCUMENTID));
+ 
+         m = getXML("testPDF_Version.11.x.PDFA-1b.pdf").metadata;
+         assertEquals("uuid:cccee1fc-51b3-4b52-ac86-672af3974d25", m.get(XMPMM.DOCUMENTID));
+ 
+         //now test for 7 elements in each parallel array
+         //from the history section
+         assertArrayEquals(
+                 new String[]{"uuid:0313504b-a0b0-4dac-a9f0-357221f2eadf",
+                     "uuid:edc4279e-0d5f-465e-b13e-1298402fd11c",
+                     "uuid:f565b775-43f3-4a9a-8541-e98c4115db6d",
+                     "uuid:9fd5e0a8-14a5-4920-ad7f-870c0b8ee65f",
+                     "uuid:09b6cfba-efde-4e07-a77f-70de858cc0aa",
+                     "uuid:1e4ffbd7-dabc-4aae-801c-15b3404ade36",
+                     "uuid:c1669773-a6ca-4bdd-aade-519030d0af00"},
+                 m.getValues(XMPMM.HISTORY_EVENT_INSTANCEID));
+ 
+         assertArrayEquals(
+                 new String[]{"converted", "converted", "converted", "converted", "converted",
+                         "converted", "converted"}, m.getValues(XMPMM.HISTORY_ACTION));
+ 
+         assertArrayEquals(
+                 new String[]{"Preflight", "Preflight", "Preflight", "Preflight", "Preflight",
+                         "Preflight", "Preflight"}, m.getValues(XMPMM.HISTORY_SOFTWARE_AGENT));
+ 
+         assertArrayEquals(
+                 new String[]{"2014-03-04T23:50:41Z", "2014-03-04T23:50:42Z", "2014-03-04T23:51:34Z",
+                         "2014-03-04T23:51:36Z", "2014-03-04T23:51:37Z", "2014-03-04T23:52:22Z",
+                         "2014-03-04T23:54:48Z"}, m.getValues(XMPMM.HISTORY_WHEN));
+     }
+ 
+     @Test
+     public void testSkipBadPage() throws Exception {
+         //test file comes from govdocs1
+         //can't use TikaTest shortcuts because of exception
+         ContentHandler handler = new BodyContentHandler(-1);
+         Metadata m = new Metadata();
+         ParseContext context = new ParseContext();
+         boolean tikaEx = false;
+         try (InputStream is = getResourceAsStream("/test-documents/testPDF_bad_page_303226.pdf")) {
+             AUTO_DETECT_PARSER.parse(is, handler, m, context);
+         } catch (TikaException e) {
+             tikaEx = true;
+         }
+         String content = handler.toString();
+         assertTrue("Should have thrown exception", tikaEx);
+         assertEquals(1, m.getValues(TikaCoreProperties.TIKA_META_EXCEPTION_WARNING).length);
+         assertContains("Unknown dir", m.get(TikaCoreProperties.TIKA_META_EXCEPTION_WARNING));
+         assertContains("1309.61", content);
+ 
+         //now try throwing exception immediately
+         PDFParserConfig config = new PDFParserConfig();
+         config.setCatchIntermediateIOExceptions(false);
+         context.set(PDFParserConfig.class, config);
+ 
+         handler = new BodyContentHandler(-1);
+         m = new Metadata();
+         tikaEx = false;
+         try (InputStream is = getResourceAsStream("/test-documents/testPDF_bad_page_303226.pdf")) {
+             AUTO_DETECT_PARSER.parse(is, handler, m, context);
+         } catch (TikaException e) {
+             tikaEx = true;
+         }
+         content = handler.toString();
+         assertTrue("Should have thrown exception", tikaEx);
+         assertEquals(0, m.getValues(TikaCoreProperties.TIKA_META_EXCEPTION_WARNING).length);
+         assertNotContained("1309.61", content);
+     }
+ 
+     @Test
+     public void testInitializationViaConfig() throws Exception {
+         try (InputStream is = getResourceAsStream(
+                 "/org/apache/tika/parser/pdf/tika-config.xml")) {
+             assertNotNull(is);
+             TikaConfig tikaConfig = new TikaConfig(is);
+             Parser p = new AutoDetectParser(tikaConfig);
+ 
+             String text =
+                     getText(getResourceAsStream("/test-documents/testPDFTwoTextBoxes.pdf"), p);
+             text = text.replaceAll("\\s+", " ");
+ 
+             // Column text is now interleaved:
+             assertContains(
+                     "Left column line 1 Right column line 1 " +
+                             "Left colu mn line 2 Right column line 2",
+                     text);
+ 
+             //test overriding underlying settings with PDFParserConfig
+             ParseContext pc = new ParseContext();
+             PDFParserConfig config = new PDFParserConfig();
+             config.setSortByPosition(false);
+             pc.set(PDFParserConfig.class, config);
+             text = getText("testPDFTwoTextBoxes.pdf", p, new Metadata(), pc);
+             text = text.replaceAll("\\s+", " ");
+             // Column text is not interleaved:
+             assertContains("Left column line 1 Left column line 2 ", text);
+ 
+             //test a new PDFParserConfig and setting another value
+             //this tests that the underlying "sortByPosition" as set
+             //in the config file is still operative
+             config = new PDFParserConfig();
+             config.setOcrDPI(10000);
+             config.setOcrStrategy(PDFParserConfig.OCR_STRATEGY.NO_OCR);
+             pc.set(PDFParserConfig.class, config);
+             text = getText("testPDFTwoTextBoxes.pdf", p, new Metadata(), pc);
+             text = text.replaceAll("\\s+", " ");
+ 
+             // Column text is now interleaved:
+             assertContains(
+                     "Left column line 1 Right column line 1 Left " +
+                             "colu mn line 2 Right column line 2",
+                     text);
+         }
+     }
+ 
+     @Test
+     public void testInitializationOfNonPrimitivesViaConfig() throws Exception {
+         try (InputStream is = getResourceAsStream(
+                 "/org/apache/tika/parser/pdf/tika-config-non-primitives.xml")) {
+             assertNotNull(is);
+             TikaConfig tikaConfig = new TikaConfig(is);
+             AutoDetectParser p = new AutoDetectParser(tikaConfig);
+             Map<MediaType, Parser> parsers = p.getParsers();
+             Parser composite = parsers.get(MediaType.application("pdf"));
+             Parser pdfParser =
+                     ((CompositeParser) composite).getParsers().get(MediaType.application("pdf"));
+             assertEquals("org.apache.tika.parser.pdf.PDFParser",
+                     pdfParser.getClass().getName());
+             assertEquals(PDFParserConfig.OCR_STRATEGY.OCR_ONLY,
+                     ((PDFParser) pdfParser).getPDFParserConfig().getOcrStrategy());
+             assertEquals(ImageType.RGB,
+                     ((PDFParser) pdfParser).getPDFParserConfig().getOcrImageType());
+         }
+     }
+ 
+     @Test
+     public void testDiffTitles() throws Exception {
+         //different titles in xmp vs docinfo
+         Metadata m = getXML("testPDF_diffTitles.pdf").metadata;
+         assertEquals("this is a new title", m.get(PDF.DOC_INFO_TITLE));
+         assertEquals("Sample Title", m.get(TikaCoreProperties.TITLE));
+     }
+ 
+     @Test
+     public void testMaxLength() throws Exception {
+         InputStream is = getResourceAsStream("/test-documents/testPDF.pdf");
+         String content = new Tika().parseToString(is, new Metadata(), 100);
+         assertTrue(content.length() == 100);
+         assertContains("Tika - Content", content);
+     }
+ 
+     @Test
+     public void testConfiguringMoreParams() throws Exception {
+         try (InputStream configIs = getResourceAsStream(
+                 "/org/apache/tika/parser/pdf/tika-inline-config.xml")) {
+             assertNotNull(configIs);
+             TikaConfig tikaConfig = new TikaConfig(configIs);
+             AutoDetectParser p = new AutoDetectParser(tikaConfig);
+             //make absolutely certain the functionality works!
+             List<Metadata> metadata = getRecursiveMetadata("testOCR.pdf", p);
+             assertEquals(2, metadata.size());
+             Map<MediaType, Parser> parsers = p.getParsers();
+             Parser composite = parsers.get(MediaType.application("pdf"));
+             Parser pdfParser =
+                     ((CompositeParser) composite).getParsers().get(MediaType.application("pdf"));
+             assertTrue(pdfParser instanceof PDFParser);
+             PDFParserConfig pdfParserConfig = ((PDFParser) pdfParser).getPDFParserConfig();
+             assertEquals(new AccessChecker(true), pdfParserConfig.getAccessChecker());
+             assertEquals(true, pdfParserConfig.isExtractInlineImages());
+             assertEquals(false, pdfParserConfig.isExtractUniqueInlineImagesOnly());
+             assertEquals(314, pdfParserConfig.getOcrDPI());
+             assertEquals(2.1f, pdfParserConfig.getOcrImageQuality(), .01f);
+             assertEquals("jpeg", pdfParserConfig.getOcrImageFormatName());
+             assertEquals(524288000, pdfParserConfig.getMaxMainMemoryBytes());
+             assertEquals(false, pdfParserConfig.isCatchIntermediateIOExceptions());
+ 
+         }
+     }
+ 
+     //TODO: figure out how to test jp2 embedded with OCR
+ 
+     private void assertException(String path, Parser parser, ParseContext context, Class expected) {
+         boolean noEx = false;
+         InputStream is = getResourceAsStream(path);
+         try {
+             String text = getText(is, parser, context);
+             noEx = true;
+         } catch (Exception e) {
+             assertEquals("Not the right exception: " + path, expected, e.getClass());
+         } finally {
+             IOUtils.closeQuietly(is);
+         }
+         assertFalse(path + " should have thrown exception", noEx);
+     }
+ 
+     @Test
+     public void testLanguageMetadata() throws Exception {
+         assertEquals("de-CH",
+                 getXML("testPDF-custommetadata.pdf").metadata.get(TikaCoreProperties.LANGUAGE));
+         assertEquals("zh-CN",
+                 getXML("testPDFFileEmbInAnnotation.pdf").metadata.get(TikaCoreProperties.LANGUAGE));
+     }
+ 
+     @Test
+     public void testAngles() throws Exception {
+         PDFParserConfig pdfParserConfig = new PDFParserConfig();
+         pdfParserConfig.setDetectAngles(true);
+         ParseContext parseContext = new ParseContext();
+         parseContext.set(PDFParserConfig.class, pdfParserConfig);
+         String xml = getXML("testPDF_angles.pdf", parseContext).xml;
+         //make sure there is only one page!
+         assertContainsCount("<div class=\"page\">", xml, 1);
+         assertContains("IN-DEMAND", xml);
+         assertContains("natural underground", xml);
+         assertContains("transport mined materials", xml);
+     }
+ 
+ 
+     @Test
+     public void testUnmappedUnicodeStats() throws Exception {
+         List<Metadata> metadataList = getRecursiveMetadata("testPDF_bad_page_303226.pdf", true);
+         Metadata m = metadataList.get(0);
+         int[] totalChars = m.getIntValues(PDF.CHARACTERS_PER_PAGE);
+         int[] unmappedUnicodeChars = m.getIntValues(PDF.UNMAPPED_UNICODE_CHARS_PER_PAGE);
+         //weird issue with pdfbox 2.0.20
+         //this test passes in my IDE, but does not pass with mvn clean install from commandline
+         if (totalChars[15] > 0) {
+             assertEquals(3805, totalChars[15]);
+             assertEquals(120, unmappedUnicodeChars[15]);
+         }
+         //confirm all works with angles
+         PDFParserConfig pdfParserConfig = new PDFParserConfig();
+         pdfParserConfig.setDetectAngles(true);
+         ParseContext parseContext = new ParseContext();
+         parseContext.set(PDFParserConfig.class, pdfParserConfig);
+         metadataList = getRecursiveMetadata("testPDF_bad_page_303226.pdf", parseContext, true);
+         m = metadataList.get(0);
+         totalChars = m.getIntValues(PDF.CHARACTERS_PER_PAGE);
+         unmappedUnicodeChars = m.getIntValues(PDF.UNMAPPED_UNICODE_CHARS_PER_PAGE);
+         if (totalChars[15] > 0) {
+             assertEquals(3805, totalChars[15]);
+             assertEquals(120, unmappedUnicodeChars[15]);
+         }
+ 
+     }
+ 
+     @Test
+     public void testNPEInPDFParserConfig() {
+         //TIKA-3091
+         PDFParserConfig config = new PDFParserConfig();
+         //don't care about values; want to make sure no NPE is thrown
+         String txt = config.toString();
+         config.hashCode();
+         config.equals(new PDFParserConfig());
+     }
+ 
+     @Test //TIKA-3041
+     @Ignore("turn back on if we add file from PDFBOX-52")
+     public void testPDFBox52() throws Exception {
+         PDFParserConfig config = new PDFParserConfig();
+         config.setExtractInlineImages(true);
+         config.setExtractUniqueInlineImagesOnly(false);
+         ParseContext context = new ParseContext();
+         context.set(PDFParserConfig.class, config);
+ 
+         List<Metadata> metadataList = getRecursiveMetadata("testPDF_PDFBOX-52.pdf", context);
+         int max = 0;
+         Matcher matcher = Pattern.compile("image(\\d+)").matcher("");
+         for (Metadata m : metadataList) {
+             String n = m.get(TikaCoreProperties.RESOURCE_NAME_KEY);
+ 
+             if (n != null && matcher.reset(n).find()) {
+                 int i = Integer.parseInt(matcher.group(1));
+                 if (i > max) {
+                     max = i;
+                 }
+             }
+         }
+         assertEquals(37, metadataList.size());
+         assertEquals(35, max);
+     }
+ 
+     @Test
+     public void testXMPBasicSchema() throws Exception {
+         //TIKA-3101
+         List<Metadata> metadataList = getRecursiveMetadata("testPDF_XMPBasicSchema.pdf");
+         Metadata m = metadataList.get(0);
+         //these two fields derive from the basic schema in the XMP, not dublin core
+         assertEquals("Hewlett-Packard MFP", m.get(XMP.CREATOR_TOOL));
+         assertEquals("1998-08-29T13:53:15Z", m.get(XMP.CREATE_DATE));
+     }
+ 
+     @Test
+     public void testXMPPDFSchema() throws Exception {
+         //as of this writing, we don't currently have any pdfs in our
+         //test suite with data that is different btwn pdf doc info and xmp. :(
+         Metadata metadata = getXML("testPopupAnnotation.pdf").metadata;
+         assertEquals("IBM Lotus Symphony 3.0", metadata.get(PDF.PRODUCER));
+     }
+ 
+     @Test
+     public void testExtractInlineImageMetadata() throws Exception {
+         ParseContext context = new ParseContext();
+         PDFParserConfig config = new PDFParserConfig();
+         config.setExtractInlineImageMetadataOnly(true);
+         context.set(PDFParserConfig.class, config);
+         List<Metadata> metadataList = getRecursiveMetadata("testOCR.pdf", context);
+         assertNull(context.get(ZeroByteFileException.IgnoreZeroByteFileException.class));
+         assertEquals(2, metadataList.size());
+         assertEquals("image/png", metadataList.get(1).get(Metadata.CONTENT_TYPE));
+         assertEquals("/image0.png",
+                 metadataList.get(1).get(TikaCoreProperties.EMBEDDED_RESOURCE_PATH));
+         assertEquals(261, (int) metadataList.get(1).getInt(Metadata.IMAGE_LENGTH));
+         assertEquals(934, (int) metadataList.get(1).getInt(Metadata.IMAGE_WIDTH));
+         assertEquals("image0.png", metadataList.get(1).get(TikaCoreProperties.RESOURCE_NAME_KEY));
+     }
+ 
+     /**
+      * Simple class to count end of document events.  If functionality is useful,
+      * move to org.apache.tika in src/test
+      */
+     private static class EventCountingHandler extends ContentHandlerDecorator {
+         private int endDocument = 0;
+ 
+         @Override
+         public void endDocument() {
+             endDocument++;
+         }
+ 
+         public int getEndDocument() {
+             return endDocument;
+         }
+     }
+ 
+     private static class AvoidInlineSelector implements DocumentSelector {
+ 
+         @Override
+         public boolean select(Metadata metadata) {
+             String v = metadata.get(TikaCoreProperties.EMBEDDED_RESOURCE_TYPE);
+             if (v != null && v.equals(TikaCoreProperties.EmbeddedResourceType.INLINE.toString())) {
+                 return false;
+             }
+             return true;
+         }
+     }
+ 
+     @Test
+     public void testDeeplyEmbeddedAttachments() throws Exception {
+         //test file comes from pdfcpu issue #120: https://github.com/pdfcpu/pdfcpu/issues/201
+         //in our regression corpus: pdfcpu-201-0.zip-0.pdf");
+         List<Metadata> metadataList = getRecursiveMetadata(
+                 "testPDF_deeplyEmbeddedAttachments.pdf");
+         assertEquals(21, metadataList.size());
+     }
+ 
+     @Test
+     public void testEmbeddedRichMedia() throws Exception {
+         List<Metadata> metadata = getRecursiveMetadata("testFlashInPDF.pdf");
+         assertEquals(2, metadata.size());
+         assertEquals("application/x-shockwave-flash", metadata.get(1).get(Metadata.CONTENT_TYPE));
+         assertEquals("TestMovie02.swf", metadata.get(1).get(TikaCoreProperties.RESOURCE_NAME_KEY));
+         assertEquals("15036", metadata.get(1).get(Metadata.CONTENT_LENGTH));
+     }
+ 
+     /**
+     @Test
+     public void testWriteLimit() throws Exception {
+         for (int i = 0; i < 10000; i += 13) {
+             Metadata metadata = testWriteLimit("testPDF_childAttachments.pdf", i);
+             assertEquals("true", metadata.get(TikaCoreProperties.WRITE_LIMIT_REACHED));
+             int len = metadata.get(TikaCoreProperties.TIKA_CONTENT).length();
+             System.out.println(len + " : " + i);
+             assertTrue(len <= i);
+         }
+     }
+ 
+     private Metadata testWriteLimit(String fileName, int limit) throws Exception {
+         BasicContentHandlerFactory factory = new BasicContentHandlerFactory(
+                 BasicContentHandlerFactory.HANDLER_TYPE.TEXT, limit
+         );
+         ContentHandler contentHandler = factory.getNewContentHandler();
+         Metadata metadata = new Metadata();
+         ParseContext parseContext = new ParseContext();
+         try (InputStream is = getResourceAsStream("/test-documents/" + fileName)) {
+             AUTO_DETECT_PARSER.parse(is, contentHandler, metadata, parseContext);
+         } catch (WriteLimitReachedException e) {
+             //e.printStackTrace();
+         }
+         metadata.set(TikaCoreProperties.TIKA_CONTENT, contentHandler.toString());
+         return metadata;
+     }*/
+ }