|
@ -0,0 +1,77 @@
|
|
|
package services;
|
|
|
|
|
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.jms.core.JmsMessagingTemplate;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import javax.jms.Queue;
|
|
|
|
|
|
/**
|
|
|
* @created Airhead 2016/8/2.
|
|
|
*/
|
|
|
@Component
|
|
|
public class HosServiceEventService {
|
|
|
@Autowired
|
|
|
private JmsMessagingTemplate jmsMessagingTemplate;
|
|
|
|
|
|
@Autowired
|
|
|
private Queue queue;
|
|
|
|
|
|
/**
|
|
|
* 当外界组件通知一个新的processor处理器被定义时,该事件被触发。
|
|
|
*
|
|
|
* @param serviceName 本次processor处理器变化,所涉及的业务系统唯一标识。在zookeeper数据结构中就是“systemNameA”。
|
|
|
* @param packageName processor处理器定义涉及的class包名
|
|
|
* @param className processor处理器定义涉及的class类名
|
|
|
* @param path processor处理器定义涉及的class内容,如果zookeeper数据结构中class分片存储,在业务级接口层面上也进行了合并
|
|
|
*/
|
|
|
public void processorAdded(String serviceName, String packageName, String className, String path) {
|
|
|
sendMsg(serviceName, packageName, className, path);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 当外界组件通知一个已有的processor处理器data部分发生变化时,该事件被触发。
|
|
|
*/
|
|
|
public void processorDataChanged(String serviceName, String packageName, String className, String path) {
|
|
|
this.sendMsg(serviceName, packageName, className, path);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 当外界组件通知一个新的RouteDefine路由被定义时,该事件被触发
|
|
|
*/
|
|
|
public void routeDefineAdded(String serviceName, String packageName, String className, String path) {
|
|
|
this.sendMsg(serviceName, packageName, className, path);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 当外界组件通知一个已有的RouteDefine路由定义被改变时,主要就是路由定义内容被改变时,该事件被触发。
|
|
|
*/
|
|
|
public void routeDefineChanged(String serviceName, String packageName, String className, String path) {
|
|
|
this.sendMsg(serviceName, packageName, className, path);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 当外界组件通知一个已有的RouteDefine路由定义被删除时,该事件被触发。
|
|
|
*/
|
|
|
public void routeDefineDelete(String serviceName, String packageName, String className) {
|
|
|
this.sendMsg(serviceName, packageName, className, null);
|
|
|
}
|
|
|
|
|
|
private void sendMsg(String serviceName, String packageName, String className, String path) {
|
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
|
ObjectNode objectNode = objectMapper.createObjectNode();
|
|
|
objectNode.put("serviceName", serviceName);
|
|
|
objectNode.put("packageName", packageName);
|
|
|
objectNode.put("className", className);
|
|
|
objectNode.put("path", path);
|
|
|
try {
|
|
|
String msg = objectMapper.writeValueAsString(objectNode);
|
|
|
this.jmsMessagingTemplate.convertAndSend(this.queue, msg);
|
|
|
} catch (JsonProcessingException e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
}
|