I have a build of Flume 1.4.0 on FreeBSD 8, installed into /usr/local/flume . I manually created /usr/local/flume/plugins.d/flume-ng-cassandra-sink and untarred flume-ng-cassandra-sink-1.0.0-SNAPSHOT-dist.tar.gz (from a local pull/build of btoddb's sources on github), so I have a lib/ directory that's completely populated with both the sink plugin and any possible jarfiles it might rely on. 

I've likewise tried just copying flume-ng-cassandra-sink-1.0.0-SNAPSHOT.jar to flume/lib/ for it to get picked up.

When I have a CassandraSink define in flume.conf as such:
webserver.sinks.cassandraSink.type = com.tbtoddb.flume.sinks.cassandra.CassandraSink
webserver.sinks.cassandraSink.channel = memoryChannel
webserver.sinks.cassandraSink.hosts = localhost
webserver.sinks.cassandraSink.cluster-name = MyCluster
webserver.sinks.cassandraSink.keyspace-name = ApacheLogs
webserver.sinks.cassandraSink.records-coldfam = Requests

and try to start Flume with:

/usr/local/flume/bin/flume-ng agent -c /usr/local/flume/conf/ -f /usr/local/flume/conf/flume.conf -n webserver -Dflume.root.logger=DEBUG,console


I get the following output (and obviously, no success):
2013-01-14 19:55:33,594 (conf-file-poller-0) [ERROR - org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.run(PollingPropertiesFileConfigurationProvider.java:142)] Failed to load configuration data. Exception follows.
org.apache.flume.FlumeException: Unable to load sink type: com.tbtoddb.flume.sinks.cassandra.CassandraSink, class: com.tbtoddb.flume.sinks.cassandra.CassandraSink
        at org.apache.flume.sink.DefaultSinkFactory.getClass(DefaultSinkFactory.java:69)
        at org.apache.flume.sink.DefaultSinkFactory.create(DefaultSinkFactory.java:41)
        at org.apache.flume.node.AbstractConfigurationProvider.loadSinks(AbstractConfigurationProvider.java:415)
        at org.apache.flume.node.AbstractConfigurationProvider.getConfiguration(AbstractConfigurationProvider.java:103)
        at org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.run(PollingPropertiesFileConfigurationProvider.java:140)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.ClassNotFoundException: com.tbtoddb.flume.sinks.cassandra.CassandraSink
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:186)
        at org.apache.flume.sink.DefaultSinkFactory.getClass(DefaultSinkFactory.java:67)
        ... 12 more


does anyone have any idea why this plugin isn't being picked up by Flume? Is it an incompatibility with the plugin expecting to run under Flume 1.3.1, perhaps? I'm at a loss on debugging this.

Thanks,
Jeff