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

Reply via email to