A DynamoDB API implementation built on Riak 2.0.
$ make
$ make test
A virtual development environment for Rinamo can be built using the steps below.
Download and install Vagrant via the Vagrant installer.
$ vagrant plugin install vagrant-berkshelf
$ vagrant plugin install vagrant-omnibus
$ vagrant plugin install vagrant-cachier (Use RINAMO_USE_CACHE to enable)
Note: If you're using Vagrant 1.5+, use the following command to install
vagrant-berkshelf
:
$ vagrant plugin install vagrant-berkshelf --plugin-version 2.0.0.rc3
The Vagrantfile
is configured to enable agent forwarding over SSH, but your
local key must be added to ssh-agent
:
$ ssh-add .ssh/id_rsa
The development environment for Rinamo has several dependencies that take a while to build. In order to expedite the process, the base development environment can be built once, and made into a Vagrant base box:
$ RINAMO_USE_CACHE=1 vagrant up rinamo-base
$ vagrant package rinamo-base
$ vagrant box add rinamo-base package.box
$ rm package.box
Now that the rinamo-base
box is built, Rinamo itself can be provisioned:
$ vagrant up rinamo-dev
Once running, Rinamo can be updated at any time by rebuilding the Riak release by running the provision command:
$ vagrant provision rinamo-dev
Rinamo responds to requests issued by AWS Client APIs. Anything can be used, but we package up a scala test console for use during development. This makes it easy to use the AWS Java Client API to explore Rinamo.
To fire up the console run the following from within the vagrant development environment:
$ cd /vagrant/tests/com.basho.dynamodb.integ
$ mvn test-compile scala:console; reset
Then run commands like this:
scala> Table.create("books_range", "Id", "N", Some("Title"), Some("S"))
res0: com.amazonaws.services.dynamodbv2.model.CreateTableResult = { ...
scala> Table.list()
res1: List[String] = List(books_range)
For more examples, refer to the console examples.
Acceptance tests use the same commands availabe in the Test Console
.
$ cd /vagrant/tests/com.basho.dynamodb.integ
$ mvn test