Java and JBoss related stuff
RSS icon Home icon
  • ElasticMQ 0.2 – support for delayed queues and messages

    Posted on January 12th, 2012 Adam Warski No comments

    Time to start blogging in 2012 :)

    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.

    Stay tuned,
    Adam

    Share and Enjoy:
    • Print
    • Facebook
    • Twitter
    • Google Bookmarks
    • Add to favorites
    • DZone

    Leave a reply