package com.mycompany.product.msg;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.support.converter.MappingJackson2MessageConverter;
import org.springframework.jms.support.converter.MessageConverter;
import org.springframework.jms.support.converter.MessageType;
import org.springframework.stereotype.Component;

import com.mycompany.product.entity.Product;

@Component
public class ProductMsgProducer {

	@Autowired 
	JmsTemplate prodUpdtemplate ;

	@Value("${jms.ProductTopic}")
	private String productTopic ;
	
	@Bean
	public MessageConverter jacksonJmsMessageConverter() {
		MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter();
		converter.setTargetType(MessageType.TEXT);
		converter.setTypeIdPropertyName("_type");
		return converter;
	}
	
	public void sendUpdate(Product product, boolean isDelete) {
		ProductUpdMsg msg = new ProductUpdMsg(product, isDelete);		
		prodUpdtemplate.convertAndSend(productTopic, msg); 
	}	
}