[ 
https://issues.apache.org/jira/browse/SOLR-7073?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Noble Paul updated SOLR-7073:
-----------------------------
    Attachment: SOLR-7073.patch

first cut

> Add an API to add a jar to a collection's classpath
> ---------------------------------------------------
>
>                 Key: SOLR-7073
>                 URL: https://issues.apache.org/jira/browse/SOLR-7073
>             Project: Solr
>          Issue Type: Sub-task
>            Reporter: Noble Paul
>            Assignee: Noble Paul
>         Attachments: SOLR-7073.patch
>
>
> The idea of having separate classloaders for each component may be counter 
> productive.  This aims to add a jar dependency to the collection itself and 
> each core belonging to that collection will have the jar in the classpath
> As we load everything from the .system collection , we cannot make the core 
> loading delayed till .system is fully loaded and is available . 
> There is a new  set of  config commands to manage the dependencies on a 
> collection level. It is possible to have more than one jar as a dependency. 
> The "lib" attribute is same as the blob name that we use in the blob store API
> example:
> {code}
> curl http://localhost:8983/solr/collection1/config -H 
> 'Content-type:application/json'  -d '{
> "add-runtimelib" : {"name": "jarname" , "version":2 },
> "update-runtimelib" :{"name": "jarname" ,"version":3},
> "delete-runtimelib" :"jarname" 
> }' 
> {code}
> The same is added to the overlay.json .
> The default SolrResourceLoader does not have visibility to  these jars . 
> There is a classloader that can access these jars which is made available 
> only to those components which are specially annotated
> Every pluggable component can have an optional extra attribute called 
> {{runtimeLib=true}}, which means, these components are not be loaded at core 
> load time. They are tried to be loaded on demand and if all the dependency 
> jars are not available at the component load time an error is thrown . 
> example of registering a valueSourceParser which depends on the runtime 
> classloader
> {code}
> curl http://localhost:8983/solr/collection1/config -H 
> 'Content-type:application/json'  -d '{
> "create-valuesourceparser" : {"name": "nvl" ,
> "runtimeLib": true, 
> "class":"solr.org.apache.solr.search.function.NvlValueSourceParser , 
> "nvlFloatValue":0.0 }  
> }'
> {code} 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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

Reply via email to