package com.mossle.user.component; import java.io.IOException; import java.util.HashMap; import java.util.Map; import javax.annotation.Resource; import javax.jms.ConnectionFactory; import com.mossle.core.mapper.JsonMapper; import com.mossle.user.persistence.domain.UserRepo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.jms.core.JmsTemplate; import org.springframework.stereotype.Component; @Component public class UserRepoPublisher { private static Logger logger = LoggerFactory .getLogger(UserRepoPublisher.class); private ConnectionFactory connectionFactory; private String destinationName = "topic.userrepo.update"; private JsonMapper jsonMapper = new JsonMapper(); public void execute(UserRepo userRepo) { Map<String, Object> map = new HashMap<String, Object>(); map.put("id", Long.toString(userRepo.getId())); map.put("code", userRepo.getCode()); map.put("name", userRepo.getName()); JmsTemplate jmsTemplate = new JmsTemplate(); jmsTemplate.setConnectionFactory(connectionFactory); jmsTemplate.setPubSubDomain(true); try { jmsTemplate.convertAndSend(destinationName, jsonMapper.toJson(map)); } catch (IOException ex) { logger.error(ex.getMessage()); } } @Resource public void setConnectionFactory(ConnectionFactory connectionFactory) { this.connectionFactory = connectionFactory; } public void setDestinationName(String destinationName) { this.destinationName = destinationName; } }