[
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)