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</Set>
    <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

Reply via email to