aphyr/riemann — pull request #276 by pyr (2013-10-29 13:23:12+00:00)
Title: Implement a plugin system, for easy loading of external namespaces

The idea behind this PR is to provide an easy way to drop in JARs containing additional streams & functions in riemann's classpath and have them available in the configuration file.

This seems like a good approach if we want to keep riemann core clean while allowing easy extensibility.

A typical plugin would depend on riemann and have namespaces implementing functions, it would distribute a file in its resources: `riemann_plugin/PLUGIN_NAME/meta.edn` containing at least two keys: `plugin` and `require`, like so:

```clojure
{:plugin "fakesink"
:require [[riemann.fakesink :refer [fakesink-prefix] :as fakesink]}
```

The `require` key expects a valid vector to feed `clojure.core/require`