56 lines
1.5 KiB
Java
56 lines
1.5 KiB
Java
package io.wdd.rpc.message;
|
|
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import io.wdd.common.beans.rabbitmq.OctopusMessage;
|
|
import io.wdd.common.beans.rabbitmq.OctopusMessageType;
|
|
import io.wdd.common.handler.MyRuntimeException;
|
|
import io.wdd.rpc.init.FromServerMessageBinding;
|
|
import lombok.SneakyThrows;
|
|
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.boot.actuate.amqp.RabbitHealthIndicator;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
/**
|
|
* adaptor
|
|
* provide override method to convert Object and send to rabbitmq
|
|
*/
|
|
@Component
|
|
public class ToAgentOrder {
|
|
|
|
@Resource
|
|
RabbitTemplate rabbitTemplate;
|
|
|
|
@Resource
|
|
FromServerMessageBinding fromServerMessageBinding;
|
|
|
|
/**
|
|
*
|
|
* send to Queue -- InitFromServer
|
|
*
|
|
* @param message octopus message
|
|
*/
|
|
public void send(OctopusMessage message){
|
|
|
|
// only accept INIT type message
|
|
if (!OctopusMessageType.INIT.equals(message.getType())) {
|
|
throw new MyRuntimeException("To Agent Order method usage wrong !");
|
|
}
|
|
|
|
// send to Queue -- InitFromServer
|
|
|
|
rabbitTemplate.convertAndSend(fromServerMessageBinding.INIT_EXCHANGE, fromServerMessageBinding.INIT_FROM_SERVER_KEY, writeData(message));
|
|
|
|
}
|
|
|
|
@SneakyThrows
|
|
private byte[] writeData(Object data){
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
return objectMapper.writeValueAsBytes(data);
|
|
}
|
|
|
|
}
|