[
https://issues.apache.org/jira/browse/SOLR-1449?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12761925#action_12761925
]
Hoss Man commented on SOLR-1449:
--------------------------------
bq. Noble has been refactoring SolrConfig in SOLR-1198 with the end goal being
pluggable loading of SolrConfig
I understand Noble's goal(s) .. i'm actually really stoked to be moving in that
direction and look forward to people being able to provide/reuse their own
SolrConfig implementations which may not use XML at all...
bq. So we need to ask now what is the function of SolrConfig? Do we want it to
load/modify SolrResourceLoader objects or just be a representation of
configuration?
I disagree that we need to ask that question "now", in this issue ... that is
an important question for other issues (which you and Noble have already
referenced). Those issues are going to face tough decisions about how to deal
with the existing contracts of Solr config like all the methods it inherits
from Config (including getResourceLoader(), and openResource()) or the fact
that all of it's public constructors are expected to initialize a new
SolrResourceLoader.
When the time comes to make those tough decisions, we will have to make
non-back-compat changes to the contracts of SolrConfig and SolrResourceLoader,
and document a 'new' contract for how to properly initialize them. *THAT* is
the appropriate time (in my opinion) to worry about how we should refactoring
all the SolrResourceLoader initialization code -- but today, on the trunk,
SolrConfig is still responsible for initializing SolrResourceLoader in many
cases. The patch as i wrote it ensures that no matter how a SolrResourceLoader
is instantiated, or who instantiates it, if a SolrConfig instance is told to
use it, then it gets a class loader based on the options in that SolrConfig.
This is the simplest possible patch I could think of to make the change
desired. I deliberately avoided making any public API changes to SolrCOnfig or
SolrResourceLoader because i didn't want to commit to who/how the ClassLoader
would get those changes -- so in the future (when we have to make/advertise big
API changes to SolrConfig to eliminate direct references to SOlrResourceLoader
anyway) it will be easy to refactor it (the logic in initLibs) to someplace
else and document exactly how the SolrResourceLoader should be initialized
cleanly.
At this point, i personally have no interest in trying to "guess" what the
right decisions will be down the road, nor am i interested in writing a more
complicated patch that would commit us to that guess with modifications
SolrConfig's public API. As i said in a previous comment...
bq. if you have any specific suggested improvements for the patch that you
think will make eventual work on SOLR-919 easier, then i'm all ears
...but to be more explicit: attach an alternate patch, and i'll review it.
> solrconfig.xml syntax to add classpath elements from outside of instanceDir
> ---------------------------------------------------------------------------
>
> Key: SOLR-1449
> URL: https://issues.apache.org/jira/browse/SOLR-1449
> Project: Solr
> Issue Type: Improvement
> Reporter: Hoss Man
> Assignee: Hoss Man
> Fix For: 1.4
>
> Attachments: SOLR-1449.patch, SOLR-1449.patch, SOLR-1449.patch,
> SOLR-1449.patch, SOLR-1449.patch, SOLR-1449.patch, SOLR-1449.patch
>
>
> the idea has been discussed numerous times that it would be nice if there was
> a way to configure a core to load plugins from specific jars (or "classes"
> style directories) by path w/o needing to copy them to the "./lib" dir in
> the instanceDir.
> The current workaround is "symlinks" but that doesn't really help the
> situation of the Solr Release artifacts, where we wind up making numerous
> copies of jars to support multiple example directories (you can't have
> reliable symlinks in zip files)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.