Simon-Shlomo Poil created TIKA-3418:
---------------------------------------
Summary: DefaultZipContainerDetector does not support loading of
ZipContainerDetectors in an OSGi enviroment
Key: TIKA-3418
URL: https://issues.apache.org/jira/browse/TIKA-3418
Project: Tika
Issue Type: Improvement
Components: core, parser
Affects Versions: 2.0.0
Reporter: Simon-Shlomo Poil
Classes that implements the ZipContainerDetector interface are loaded via the
ServiceLoader in the DefaultZipContainerDetector (in parsers-zip-commons).
In an OSGi enviroment the current behaviour is (default constructor) to only
load classes that a found by the DefaultZipContainerDetector classloader,
however this will miss ZipContainerDetector classes such as the
[OPCPackageDetector.java|https://github.com/apache/tika/blob/main/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/detect/microsoft/ooxml/OPCPackageDetector.java]
in the
[tika-parser-microsoft-module|https://github.com/apache/tika/tree/main/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module].
The DefaultZipConatinerDetector has constructor to pass a ServiceLoader, which
in principle could allow loading of dynamic services. However, this constructor
will load the services only on initialization, which does comply with the
dynamic natur of an OSGi enviroment where services can come and go dynamically.
Linked to this issue is pull-request that attempts solve this issue following a
similar strategy of service loading as implemented in the DefaultDetector and
DefaultParser.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)