A fake version of Amazon's SimpleDB. Local, in-memory, consistent, deployed as a war.
The entire REST API (Query, Select, etc.) is implemented in ~750 lines of Scala.
You can get fakesdb from:
-
The downloads page
-
The http://repo.joist.ws Maven repository, e.g.
com.bizo
+fakesdb-testing_2.9.1
+2.6.1
here
There are a few different modules:
-
fakesdb-standalone
has all of the dependencies (including Scala) as an uber-jar for running from the CLI.You can run this as:
`java -jar fakesdb-standalone-1.5.jar`
And it will start up an embedded instance of Jetty on port 8080. You can pass
-Dport=X
to specify a different port. -
fakesdb-testing
is the dependencies (without Scala) as an uber-jar for embedding.From within a unit test, you can call:
fakesdb.Jetty.apply(8080)
To start up fakesdb on port 8080.
-
fakesdb-servlet
is just the fakesdb classes (no dependencies) for running within your own webapp. E.g. add thefakesdb.FakeSdbServlet
to your ownweb.xml
file.You could also use this version for
AmazonSimpleDbStub
if you want to do in-memory only testing. -
fakesdb.war
is (was--it's not being published right now) to drop into your Tomcat/etc.
-
To facilitate testing, issuing a
CreateDomain
command withDomainName=_flush
will reset all of the data -
If you're using the
typica
Java SimpleDB client, versions through 1.6 only use port 80, even when given a non-80 setting. So you'll either have to runfakesdb
on port 80 or else redirect port 80 traffic to 8080 with a firewall rule.
- 2.6.1 - 15 November 2012
- Add
<stacktrace>
to error responses (Alex Boisvert) - Build improvements (Alex Boisvert)
- Add
- 2.5 - 6 Oct 2012
- Add AmazonSimpleDbStub for in-memory testing of clients using the AWS Java SDK
- Switch from sbt to buildr
- 2.4 - 23 Aug 2011
- Upgrade to Scala 2.9.0-1 and Jetty 8.0.0.RC0
- Make new
fakesdb-testing.jar
which has jetty but not scala-library
- 2.3 - 23 Aug 2011
- Remove
Jetty
bootstrap classes fromfakesdb-servlet.jar
- Remove
- 2.2 - 25 Apr 2011
- BatchDeleteAttributes support (Alexander Gorkunov)
- Partial Select support (Alexander Gorkunov)
- Pre-2.2 various releases
- Loading the SDB URL in a browser (e.g. without a REST action) should display all of the current data
- Release It talks about having "fake" (better term?) versions of systems like
fakesdb
purposefully lock up, fail, etc., to test how your real application responds--it would be cool to flipfakesdb
into several error modes either via a web UI or meta-domains (like the current_flush
domain)
Licensed under the terms of the Apache Software License v2.0.