Uwe Schindler created SOLR-3716:
-----------------------------------

             Summary: Make SolrResourceLoaders ClassLoader available as context 
class loader
                 Key: SOLR-3716
                 URL: https://issues.apache.org/jira/browse/SOLR-3716
             Project: Solr
          Issue Type: Bug
          Components: scripts and tools
            Reporter: Uwe Schindler
             Fix For: 4.0, 5.0


SOLR-1725 and other issues (recent changes to analysis factories and codecs) 
make it possible to plug in extensions like analyzer factories, codecs, 
scripting engines or TIKA parsers (TIKA extraction plugin!!!) as SPIs. The 
current problem (we solved this alreeady for codecs and analyzer factories with 
a classloader-reload hack: LUCENE-4259) is the following:

You have to unpack WAR file and repack with the missing JAR files. If you would 
do it the "solr way" and put those jars into the $SOLR_HOME/lib folder like 
plugins, they are not seen. The problem is that plugins loaded by solr are 
loaded using SolrResourceLoader's classloader (configureable via 
solrconfig.xml), but as this classloader is not also context classloader, SPI 
does not look into it, so scripting engines, TIKA plugins, (previously codecs) 
are not seen.

We should investigate how to manage setting the context classloader of all 
threads solr ever sees to point to our own solr classloader.

When we do this, I also suggest to only ship with TIKA core libs but not 
tika-parsers and the big dependency hell. TIKA parsers are also loaded via SPI, 
so user can download the TIKA parser distribution and drop into $SOLR_HOME/lib. 
By that a user can also use only those extraction plugins really needed. The 
current solr distribution only consists of mostly useless JAR files (for many 
users) for Solr Extraction handler. We dont need to ship with all of them, we 
can just tell the user how to "install" the needed SPIs. The same for 
analysis-extras (user only needs to copy morphologic JAR or smartchinese JAR 
into $SOLR_HOME/lib - this works already!!!). No need for the "hull contrib". 
Scripting engines is the same.

We should just ship with some scripts (ANT based) to download the JAR files 
into $SOLR_HOME.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to