You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2019/08/01 00:36:00 UTC

[jira] [Commented] (SOLR-13637) Enable loading of plugins from the corecontainer memclassloader

    [ https://issues.apache.org/jira/browse/SOLR-13637?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16897645#comment-16897645 ] 

ASF subversion and git services commented on SOLR-13637:
--------------------------------------------------------

Commit c20988907f28954967de3395ea5421ee56ec4b35 in lucene-solr's branch refs/heads/jira/SOLR-13650 from Ishan Chattopadhyaya
[ https://gitbox.apache.org/repos/asf?p=lucene-solr.git;h=c209889 ]

SOLR-13637: Using google common's ImmutableMap instead of carrot's


> Enable loading of plugins from the corecontainer memclassloader
> ---------------------------------------------------------------
>
>                 Key: SOLR-13637
>                 URL: https://issues.apache.org/jira/browse/SOLR-13637
>             Project: Solr
>          Issue Type: Improvement
>            Reporter: Noble Paul
>            Priority: Major
>         Attachments: BasicAuthFails.patch
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> When we update jars or add/modify plugins no core reloading should be required .Core reloading is a very expensive operation. Optionally, we can just make the plugin depend on the corecontainer level classloader. 
> {code:xml}
>  <queryParser name="mycustomQParser" class="my.path.to.ClassName" runtimeLib="global">
>  
>   </queryParser>
> {code}
> or alternately using the config API 
> {code:json}
> curl -X POST -H 'Content-type:application/json' --data-binary '
> {
>   "create-queryparser": {
>       "name": "mycustomQParser" ,
>       "class" : "my.path.to.ClassName",
>      "runtimeLib" : "global"
>   }
> }' http://localhost:8983/api/c/mycollection/config
> {code}
> The global classloader is the corecontainer level classloader . So whenever this is reloaded The component gets reloaded. The only caveat is, this component cannot use core specific jars.
> We will deprecate the {{runtimeLib = true/false}} option and the new options are 
> * {{runtimeLib=core}} : means this uses the runtimeLib of the collection
> * {{runtimeLib= global}} : means this uses the runtimeLib of the corecontainer 
> example command to update global jar . This will lead to a reload of all components marked as {{runtimeLib=global}}
> {code}
> curl -X POST -H 'Content-type:application/json' --data-binary '
> {
>   "update-runtimelib": {
>       "name": "lib-name" ,
>       "url" : "http://host:port/url/of/jar",
>       "sha512":"<the-new-sha512>"
>   }
> }' http://localhost:8983/api/cluster
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org