Forum Discussion

Nadroj87's avatar
Nadroj87
New Contributor
15 years ago

Purge Hermes JMSQueue via Groovy Script

I'm wondering if anyone is familiar with a way/script that I could use, I was thinking in Groovy, to purge a select group of JMS queues that are in Hermes.

It would be nice not to have to truncate a queue each time before I rerun a test case.

1 Reply

  • Joanne's avatar
    Joanne
    New Contributor
    Delete Messages from multiple JMS Queues in SOAPUI Hermes using Groovy

    This uses gloabl properties and a list of queues
    import com.eviware.soapui.impl.wsdl.submit.transport.jms.JMSConnectionBuilder
    import com.eviware.soapui.impl.wsdl.submit.transport.jms.JMSEndpoint
    import com.eviware.soapui.impl.wsdl.submit.transport.jms.util.HermesUtils
    import hermes.Hermes
    import javax.jms

    // ${endpoint} is set in global properties to session created in Hermes ie Tibco-INT
    def endpoint = conext.expand('${endpoint}')
    List queues = ["queue1", queue2"];

    queues.each{
    def queueName = "${it}"
    def jmsEndPoint = new JMSEndpoint("jms://"+endpoint"::-::queue_"+queueName);
    def hermes = HermesUtils.getHermes(context.testCase.testSuit.project.jmsEndpoint.sessionName)
    def jmsConnectionHolder = new JMSConnectionHolder(jmsEndPoint,hermes,false,null,null,null);

    Session session = jmsConnectionHolder.getSession();
    Queue queue = jmsConnectionHolder.getQueue(jmsConnectionHolder.getJMSEndpoint().getReceive());

    MessageConsumer consumer = session.creatConsumer(queue);
    Message message = null;
    while((message = consumer.receiveNoWait()) != null){
    //do nothing
    }
    jmsConnectionHolder.closeAll()
    }

    More scripts on my blog: http://josies.blogspot.co.uk/2012/03/de ... roovy.html