• Sub-task
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 5.1, 6.0
    • None
    • None


      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

      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" 

      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

      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 }  


        1. SOLR-7073_5x.patch
          142 kB
          Noble Paul
        2. SOLR-7073.patch
          138 kB
          Noble Paul
        3. SOLR-7073.patch
          130 kB
          Noble Paul
        4. SOLR-7073.patch
          128 kB
          Noble Paul
        5. SOLR-7073.patch
          116 kB
          Noble Paul

        Issue Links



              noble.paul Noble Paul
              noble.paul Noble Paul
              0 Vote for this issue
              9 Start watching this issue