/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.transport.jms;
import javax.jms.BytesMessage;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import com.opengamma.transport.ByteArrayMessageSender;
/**
* A message sender that uses JMS.
* <p>
* This is a simple implementation based on JMS.
*/
public class JmsByteArrayMessageSender extends AbstractJmsByteArraySender implements ByteArrayMessageSender {
/** Logger. */
private static final Logger s_logger = LoggerFactory.getLogger(JmsByteArrayMessageSender.class);
/**
* Creates an instance associated with a destination and template.
*
* @param destinationName the destination name, not null
* @param jmsTemplate the template, not null
*/
public JmsByteArrayMessageSender(final String destinationName, final JmsTemplate jmsTemplate) {
super(destinationName, jmsTemplate);
}
//-------------------------------------------------------------------------
@Override
public void send(final byte[] message) {
s_logger.debug("Sending message size {} to {}", message.length, getDestinationName());
getJmsTemplate().send(getDestinationName(), new MessageCreator() {
@Override
public Message createMessage(Session session) throws JMSException {
final BytesMessage bytesMessage = session.createBytesMessage();
bytesMessage.writeBytes(message);
return bytesMessage;
}
});
}
}