List of usage examples for org.springframework.jms.core JmsTemplate receiveSelectedAndConvert
@Override @Nullable public Object receiveSelectedAndConvert(String messageSelector) throws JmsException
From source file:com.atlantbh.jmeter.plugins.jmstools.JmsUtil.java
@Override public SampleResult runTest(JavaSamplerContext ctx) { SampleResult result = new SampleResult(); result.setContentType("plain/text"); result.setDataType(SampleResult.TEXT); result.setDataEncoding(SampleResult.DEFAULT_HTTP_ENCODING); String connectionUrl = ctx.getParameter("connection.url"); String bindingUrl = ctx.getParameter("binding.url"); String message = ctx.getParameter("message"); if (connectionUrl == null || "".equals(connectionUrl)) { result.setSuccessful(false);/*w w w . j av a 2s.c o m*/ result.setResponseMessage("Connection URL cannot be empty."); result.setResponseCode("0xDEAD"); } else { if (bindingUrl == null || "".equals(bindingUrl)) { result.setSuccessful(false); result.setResponseMessage("Binding URL cannot be empty."); result.setResponseCode("0xDEAD"); } else { try { ConnectionFactory connectionFactory = new AMQConnectionFactory(connectionUrl); AMQBindingURL burl = new AMQBindingURL(bindingUrl); Destination destinationProducer = new AMQAnyDestination(burl); JmsTemplate sender = new JmsTemplate(); sender.setConnectionFactory(connectionFactory); sender.setDefaultDestination(destinationProducer); BinaryMessageConverter bmc = new BinaryMessageConverter(); sender.setMessageConverter(bmc); BinaryMessagepostProcessor postProcessor = new BinaryMessagepostProcessor(); sender.setDeliveryMode(2); int rt = 30000; try { rt = Integer.valueOf(ctx.getParameter("receive.timeout")); } catch (Exception e) { } sender.setReceiveTimeout(rt); String direction = ctx.getParameter("direction"); if (direction == null || "".equals(direction)) { direction = "send"; } if (direction.toLowerCase().equals("send")) { Map<String, String> mp = getMessageProperties(ctx.getParameter("header.properties")); postProcessor.setMessageProperties(mp); sender.convertAndSend((Object) message, postProcessor); result.setSuccessful(true); result.setResponseMessage("Message sent."); } else { if (direction.toLowerCase().equals("receive")) { System.out.println("Receive"); String messageSelector = ctx.getParameter("message.selector"); System.out.println("Selector: " + messageSelector); Object obj = null; if (messageSelector != null && !"".equals(messageSelector)) { obj = sender.receiveSelectedAndConvert(messageSelector); } else { obj = sender.receiveAndConvert(); } if (obj != null) { result.setSuccessful(true); result.setResponseData(obj.toString().getBytes()); String paramName = ctx.getParameter("header.property.reference"); if (paramName != null && !"".equals(paramName)) JMeterUtils.setProperty(paramName, concatProperties(bmc.getMessageProperties())); } else { result.setSuccessful(false); result.setResponseData("Conection timeout".getBytes()); } } else { result.setSuccessful(false); result.setResponseMessage("Unknown direction."); } } } catch (Exception e) { e.printStackTrace(); result.setSuccessful(!true); result.setResponseMessage("Exception"); result.setResponseData(e.getMessage().getBytes()); } } } return result; }