/*!
* AtlantBH Custom Jmeter Components v1.0.0
* http://www.atlantbh.com/jmeter-components/
*
* Copyright 2011, AtlantBH
*
* Licensed under the under the Apache License, Version 2.0.
*/
package com.atlantbh.jmeter.plugins.jmstools;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import javax.jms.BytesMessage;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;
import org.springframework.jms.support.converter.MessageConversionException;
import org.springframework.jms.support.converter.MessageConverter;
public class BinaryMessageConverter implements MessageConverter {
private Map<String, String> messageProperties;
public Map<String, String> getMessageProperties() {
return messageProperties;
}
public void setMessageProperties(Map<String, String> messageProperties) {
this.messageProperties = messageProperties;
}
@Override
public Object fromMessage(Message message) throws JMSException, MessageConversionException {
Enumeration<String> names = message.getPropertyNames();
messageProperties = new HashMap<String, String>();
while (names.hasMoreElements()) {
String name = names.nextElement();
messageProperties.put(name, message.getStringProperty(name));
}
BytesMessage bm = (BytesMessage) message;
byte[] transfer = new byte[(int) bm.getBodyLength()];
bm.readBytes(transfer);
return new String(transfer);
}
@Override
public Message toMessage(Object arg0, Session session) throws JMSException, MessageConversionException {
BytesMessage msg = session.createBytesMessage();
msg.writeBytes(arg0.toString().getBytes());
return msg;
}
}