All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.opentracing.contrib.jms.spring.TracingMessageConverter Maven / Gradle / Ivy

package io.opentracing.contrib.jms.spring;


import io.opentracing.contrib.jms.common.TracingMessageUtils;
import org.springframework.jms.support.converter.MessageConversionException;
import org.springframework.jms.support.converter.MessageConverter;
import org.springframework.jms.support.converter.SimpleMessageConverter;

import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;

/**
 * Decorator for Spring MessageConverter
 */
public class TracingMessageConverter implements MessageConverter {
    private final MessageConverter messageConverter;
    private final SimpleMessageConverter simpleMessageConverter = new SimpleMessageConverter();

    public TracingMessageConverter(MessageConverter messageConverter) {
        this.messageConverter = messageConverter;
    }

    @Override
    public Message toMessage(Object object, Session session) throws JMSException, MessageConversionException {
        if (messageConverter != null) {
            return messageConverter.toMessage(object, session);
        }
        return simpleMessageConverter.toMessage(object, session);
    }

    @Override
    public Object fromMessage(Message message) throws JMSException, MessageConversionException {
        TracingMessageUtils.buildAndFinishChildSpan(message);
        if (messageConverter != null) {
            return messageConverter.fromMessage(message);
        }
        return simpleMessageConverter.fromMessage(message);
    }
}





© 2015 - 2025 Weber Informatics LLC | Privacy Policy