Currently, chef-solr auto-installs solr if it's not yet installed. Although the inline use of Chef resources is nifty, there are significant drawbacks:
- upgrading solr (required for 0.9 -> 0.10) is manual and error-prone, the user must remove several directories by hand
- There is no detection of a version mismatch between the chef-solr version and the schema of the solr index
- switching between versions is difficult (this is causing us headaches in CI)
- The logic for installing and then running is tricky since the install may require root, but the user might wish to run chef-solr as a lesser-privileged user. Getting the ordering right here has been difficult and the probability of changes causing a regression is high.
- When distributed as a package (apt/deb, rpm, etc.) auto install is more of a hassle than anything, since the package manager will do the installing.
- Requiring so much code adds an annoying delay to startup time
I have separated chef-solr's functions into an installer and a daemon, solving all of the above problems. Will merge shortly.