: Interesting, instances of SolrCoreAware would be queued up until the config is
: told what the core is - afterwards it tells them immediately. I like that.
that's what i was thinking, but i'm actually not fond of that idea ... it
seemed sexy to keep things that simple, so that the same code would
work for plugins created at startup, and (hypothetical) plugins created
later ... except that only SolrCore and SolrConfig would be simple, all of
the plugins would be complicated because we wouldn't be able to garuntee
that tellAboutCore() would be called before init(), so a lot of plugins
might have to look like this...
public class Plugin implements SolrCoreAware {
SolrCore core = null;
boolean inited = false;
public void init(...) {
...
inited = true;
if (null != core) finishInit();
}
public void tellAboutCore(...) {
...
if (inited) finishInit();
}
}
...that seems like an obnoxious burden to put on people. it would
probably be better to make sure we can live up to a simple contract like
"tellAboutCore() will always be called before init() even if it means we
have to jump through more hoops in SolrConfig and SolrCore ... i'm just
not sure what those hoops should look like.
: The one concern is what about the potential to call config.tellAboutCore(
: core0 ) then call config.tellAboutCore( core1 );
oh sweet mother of all that is holy ... please let us never speak of this
again ...
: I don't see a good use case where you would want to change the core out from
agreed ... i don't even think it's neccessary to make it throw an
exception, just treat it as completely undefined (no different then if you
try to call init() on a plugin more then once right now ... why go out of
our way to test for something inherently silly?)
-Hoss