ElasticMQ 0.2 – support for delayed queues and messages
Join the DZone community and get the full member experience.Join For Free
I just released version 0.2 of ElasticMQ – a simple message queue system, which implements the Amazon SQS interface. Ideal if you want to test a service which uses SQS, or create a system which can leverage either the AWS infrastructure or run stand-alone.
The new version brings support for some new Amazon SQS features: delayed messages and queues. See the Amazon Blog for details.
Also, I changed the testsuite to use Amazon’s Java SDK. So you can be pretty sure that ElasticMQ works with SQS clients :). As an example, here’s the required code (in Scala, Java equivalent would be obviously a bit longer ;) ) to start an ElasticMQ node, send & receive a message using Amazon Java SDK and shutdown the server.
// First we need to create a Node val node = NodeBuilder.withInMemoryStorage().build() // Then we can expose the native client using the SQS REST interface val server = SQSRestServerFactory.start(node.nativeClient, 8888, "http://localhost:8888") // Now we need to create the sqs client client = new AmazonSQSClient(new BasicAWSCredentials("x", "x")) client.setEndpoint("http://localhost:8888") // Using the client is quite straightforward val queueUrl = client.createQueue(new CreateQueueRequest("queue1")) .getQueueUrl client.sendMessage(new SendMessageRequest(queueUrl, "message1")) client.shutdown() // Finally we need to stop the server and the node server.stop() node.shutdown()
For more information about ElasticMQ, information on SBT and Maven dependencies, see the webpage.
Opinions expressed by DZone contributors are their own.