basho/yokozuna — pull request #159 by beerriot (2013-08-16 16:42:12+00:00)
Title: Use .jar files in priv/ not data/yz/

It seems like a bad idea to use .jar files out of the data directory. Instead, let's use them from YZ's `priv/` directory, where they will be versioned with the YZ release. This PR does this, while also cleaning things out of `priv/` that we don't want to ship in the release (source files, build scripts, etc.).

This PR requires that you use a PR in the riak repo as well. TODO LINK AFTER PR

There was quite a bit of hit & miss in getting this "right". I tried to leave notes about why things changed after I figured out how to change them, but I'm sure I missed some. So, if some change seems random and/or unnecessary, please ask.

Solr is now unpackaged/built in the `build/` directory, instead of `priv/`. We don't want all of that accompanying the release, so we just copy in what we need.

This PR also includes a change to how the JVM decides when to tear itself down after Erlang has quit (it now waits for a read from stdin to return an error, instead of periodically running a bash script to check the owner of the JVM process). This was included in order to avoid the work of correcting the path to `monitor.sh`.

Things I'm not 100% happy with:
* It seems like `priv/conf/` shouldn't need to exists, and that `data/yz/_yz_default` should be good enough … but I see errors if I remove it.
* I moved `log4j.properties` to the node's `etc/` directory, because it seemed like config a user might want/need exposed. The way the path to this file is generated, and the generated path the file contains, seems fragile, though.
* We should probably be creating everything in `data/yz` at startup time, if it doesn't exist. That would allow the user to blow away testing data at any time, as well as easily reconfigure where data is stored without moving files.

Things I haven't tested:
* I haven't run the entirety of `verify.sh` on this setup yet.
* I haven't used the non-prepackaged branches of the `grab-solr.sh` script.