For my Apachecon talk, I've created a few very simple
"demo"
RequestHandlers to show off some various functionality ... I
started
developing these in my solr SVN tree, so it wasn't untill
today that it
occured to me I had no idea what was needed in Jetty to add
an arbitrary
jar to the solr.war classpath at runtime.
My goal being to provide:
* the java source
* a precompiled jar
* a solrconfig.xml that registers/refrences these
RequestHandlers
* simple instructions for downloading a nightly build,
replacing the
config, copying the jar to someplace magical, and
starting up the
server.
(For me giving the talk, i could just compile the code right
into the
solr.war, or use Resin which I'm more familiar with -- but
i was hoping ot
have an easy way that anyone could recreate the my demo
using the default
example)
things I've already tried...
* java -cp .:my.jar -jar start.jar
* putting my.jar in the example/lib directory
* putting my.jar in the example/ext directory (this has a
differnet
problem - the jar is loaded before the webapp so it
can't resolve
dependencies like "SolrRequestHandler")
* modifing the jetty.xml to include something like this...
<Call name="addWebApplication">
<Arg>/hoss</Arg>
<Arg>./webapps/solr.war</Arg>
<Set
name="extractWAR">true</Set>
<Set
name="defaultsDescriptor"><SystemProperty
name="jetty.home"
default="."/>/etc/webdefault.xml</Set>
<Set
name="classLoaderJava2Compliant">false</Se
t>
<Call name="addClassPath">
<Arg><SystemProperty
name="jetty.home"
default="."/>my.jar</Arg>
</Call>
</Call>
...i got that last idea from here, based on the timeline,
this fix
should be in the Jetty5.1.11 that we're using, but it
doesn't seem to work
for me.
Has anyone out there gotten Jetty to load their custom
RequestHandlers,
Analyzers, or Similarities? ... even if you haven't do you
have any
suggestions on how to do it cleanly? (ie: without
deconstructing the war
and injecting my jar)
-Hoss
|