You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tika.apache.org by "Bob Paulin (JIRA)" <ji...@apache.org> on 2015/08/01 23:48:04 UTC
[jira] [Updated] (TIKA-1700) tika-config.xml does not provide a way
to set ServiceLoader to dynamic
[ https://issues.apache.org/jira/browse/TIKA-1700?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Bob Paulin updated TIKA-1700:
-----------------------------
Attachment: TIKA-1700B.patch
Apache Jackrabbit for example may be used inside or outside the OSGi environment. Using the code above for example would require Jackrabbit to have a toggle to determine what to pass for dynamic to the ServiceLoader object. If it can be done via the tika-config.xml then Jackrabbit does not need to be responsible for this toggle because Tika has already provided it. Tika owns the service loader logic so I feel it's best that it provides the switches. I agree that the parser is the wrong spot to tackle this problem. I've moved higher up in the TikaConfig Logic in the next patch. I also added some logic to allow the LoadErrorHandler to be defined in xml as well.
> tika-config.xml does not provide a way to set ServiceLoader to dynamic
> ----------------------------------------------------------------------
>
> Key: TIKA-1700
> URL: https://issues.apache.org/jira/browse/TIKA-1700
> Project: Tika
> Issue Type: Bug
> Components: core
> Affects Versions: 1.7, 1.8, 1.9, 1.10
> Environment: OSGi
> Reporter: Bob Paulin
> Attachments: TIKA-1700.patch, TIKA-1700A.patch, TIKA-1700B.patch
>
>
> Currently if you create a TikaConfig from a file (ex tika-config.xml). There is no way to specify that you want to use a ServiceLoader with dynamic set. Prior to tika 1.7 this was not an issue since the during the tika-config.xml parse Tika would instantiate parsers using the default constructor which in turn would instantiate a new ServiceLoader. The default ServiceLoader constructor sets dynamic to true which allows dynamic loading of parsers.
> Changes to TikaConfig now cause the tika-config.xml parse to call a constructor which passes the ServiceLoader to be passed as a parameter. This ServiceLoader is always constructed with a Classloader which will cause dynamic to always be set to false. This breaks Tika in OSGi environments which depend on dynamic being set to true (for example Apache Sling).
> I'm proposing adding an xml attribute to the parser element to instantiate the parser with dynamic set to true. This allows users of tika-config.xml to determine how they want parsers loaded.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)