OK,
I nearly have the Cassandra-Maven-Plugin ready.
It has the following goals:
run: launches Cassandra in the foreground and blocks until you press
^C at which point Maven terminates. Use-case: Running integration
tests from your IDE. Live development from your IDE.
start: launches Cassandra in the background. Cassandra will be torn
down when Maven ends or if the stop goal is called. Use-case: Running
integration tests from Maven. Live development from your IDE with e.g.
jetty
clean: Clears out the Cassandra database directory in
${basedir}/target/cassandra. Use-case: Resetting the dataset.
load: Runs the cassandra-cli with a file as input. Use-case:
Creating Keyspaces & pre-populating the dataset
stop: Shuts down the background Cassandra instance started by start.
Use-case: Running integration tests from Maven.
So for example, if you are developing a web application using Maven
you would use a command like:
mvn cassandra:clean cassandra:start cassandra:load jetty:run
which would start up cassandra with a clean dataset and then start up
jetty (which presumably connects via a client library to cassandra).
Similarly, you can use cassandra-maven-plugin, jetty-maven-plugin,
maven-failsafe-plugin and selenium-maven-plugin to run web integration
tests as part of your build.
So I have some questions:
1. Is there a standard file extension for the scripts that get passed
to cassandra-cli?
2. Is there any other obvious goal I have missed out on?
There is a small bit of tidy-up left and then I just have to add some
integration tests and the site documentation. Once I have all that in
place I will raise a JIRA with the full source code against CASSANDRA
and hopefully a friendly committer will pick it up and commit it into
the tree. While waiting for a committer testers will be welcome.
If it gets accepted I will then see about getting it released and
published on central.
Expect to see the JIRA sometime Monday or Tuesday.
-Stephen