瀏覽代碼

修改事件参数

Airhead 8 年之前
父節點
當前提交
e423c13f5d

+ 14 - 14
hos-admin/src/main/java/com/yihu/hos/services/HosServiceEventService.java

@ -13,7 +13,7 @@ import javax.jms.Queue;
 * @created Airhead 2016/8/2.
 */
@Component
public class HosServiceEventService {
public class ServiceFlowEventService {
    @Autowired
    private JmsMessagingTemplate jmsMessagingTemplate;
@ -23,48 +23,48 @@ public class HosServiceEventService {
    /**
     * 当外界组件通知一个新的processor处理器被定义时,该事件被触发。
     *
     * @param serviceName 本次processor处理器变化,所涉及的业务系统唯一标识。在zookeeper数据结构中就是“systemNameA”。
     * @param serviceFlow 本次processor处理器变化,所涉及的服务流程Code标识。
     * @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("processorAdded", serviceName, packageName, className, path);
    public void processorAdded(String serviceFlow, String packageName, String className, String path) {
        sendMsg("processorAdded", serviceFlow, packageName, className, path);
    }
    /**
     * 当外界组件通知一个已有的processor处理器data部分发生变化时,该事件被触发。
     */
    public void processorDataChanged(String serviceName, String packageName, String className, String path) {
        this.sendMsg("processorDataChanged", serviceName, packageName, className, path);
    public void processorDataChanged(String serviceFlow, String packageName, String className, String path) {
        this.sendMsg("processorDataChanged", serviceFlow, packageName, className, path);
    }
    /**
     * 当外界组件通知一个新的RouteDefine路由被定义时,该事件被触发
     */
    public void routeDefineAdded(String serviceName, String packageName, String className, String path) {
        this.sendMsg("routeDefineAdded", serviceName, packageName, className, path);
    public void routeDefineAdded(String serviceFlow, String packageName, String className, String path) {
        this.sendMsg("routeDefineAdded", serviceFlow, packageName, className, path);
    }
    /**
     * 当外界组件通知一个已有的RouteDefine路由定义被改变时,主要就是路由定义内容被改变时,该事件被触发。
     */
    public void routeDefineChanged(String serviceName, String packageName, String className, String path) {
        this.sendMsg("routeDefineChanged", serviceName, packageName, className, path);
    public void routeDefineChanged(String serviceFlow, String packageName, String className, String path) {
        this.sendMsg("routeDefineChanged", serviceFlow, packageName, className, path);
    }
    /**
     * 当外界组件通知一个已有的RouteDefine路由定义被删除时,该事件被触发。
     */
    public void routeDefineDelete(String serviceName, String packageName, String className) {
        this.sendMsg("routeDefineDelete", serviceName, packageName, className, null);
    public void routeDefineDelete(String serviceFlow, String packageName, String className) {
        this.sendMsg("routeDefineDelete", serviceFlow, packageName, className, null);
    }
    private void sendMsg(String event, String serviceName, String packageName, String className, String path) {
    private void sendMsg(String event, String serviceFlow, String packageName, String className, String path) {
        ObjectMapper objectMapper = new ObjectMapper();
        ObjectNode objectNode = objectMapper.createObjectNode();
        objectNode.put("event", event);
        objectNode.put("serviceName", serviceName);
        objectNode.put("serviceFlow", serviceFlow);
        objectNode.put("packageName", packageName);
        objectNode.put("className", className);
        objectNode.put("path", path);

+ 0 - 43
hos-admin/src/test/java/com/yihu/hos/services/HosServiceEventServiceTest.java

@ -1,43 +0,0 @@
package com.yihu.hos.services;
import com.yihu.hos.HosAdminApplication;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
/**
 * @created Airhead 2016/8/4.
 */
@RunWith(SpringRunner.class)
@SpringBootTest(classes = HosAdminApplication.class)
public class HosServiceEventServiceTest {
    @Autowired
    HosServiceEventService hosServiceEventService;
    @Test
    public void processorAdded() throws Exception {
        hosServiceEventService.processorAdded("hosServiceEventService", "services", "HosServiceEventService", "D:\\Git\\esb\\hos-admin\\src\\main\\java\\com.yihu.hos.services\\HosServiceEventService.java");
    }
    @Test
    public void processorDataChanged() throws Exception {
    }
    @Test
    public void routeDefineAdded() throws Exception {
    }
    @Test
    public void routeDefineChanged() throws Exception {
    }
    @Test
    public void routeDefineDelete() throws Exception {
    }
}

+ 43 - 0
hos-admin/src/test/java/com/yihu/hos/services/ServiceFlowEventServiceTest.java

@ -0,0 +1,43 @@
package com.yihu.hos.services;
import com.yihu.hos.HosAdminApplication;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
/**
 * @created Airhead 2016/8/4.
 */
@RunWith(SpringRunner.class)
@SpringBootTest(classes = HosAdminApplication.class)
public class ServiceFlowEventServiceTest {
    @Autowired
    ServiceFlowEventService serviceFlowEventService;
    @Test
    public void processorAdded() throws Exception {
        serviceFlowEventService.processorAdded("hosServiceEventService", "services", "HosServiceEventService", "com/yihu/hos/services/HosServiceEventService.class");
    }
    @Test
    public void processorDataChanged() throws Exception {
        serviceFlowEventService.processorDataChanged("hosServiceEventService", "services", "HosServiceEventService", "com/yihu/hos/services/HosServiceEventService.class");
    }
    @Test
    public void routeDefineAdded() throws Exception {
        serviceFlowEventService.routeDefineAdded("hosServiceEventService", "services", "HosServiceEventService", "com/yihu/hos/services/HosServiceEventService.class");
    }
    @Test
    public void routeDefineChanged() throws Exception {
        serviceFlowEventService.routeDefineChanged("hosServiceEventService", "services", "HosServiceEventService", "com/yihu/hos/services/HosServiceEventService.class");
    }
    @Test
    public void routeDefineDelete() throws Exception {
        serviceFlowEventService.routeDefineDelete("hosServiceEventService", "services", "HosServiceEventService");
    }
}

+ 6 - 6
hos-arbiter/src/main/java/com/yihu/hos/models/ServiceEvent.java

@ -3,9 +3,9 @@ package com.yihu.hos.models;
/**
 * @created Airhead 2016/8/4.
 */
public class ServiceEvent {
public class ServiceFlowEvent {
    private String event;
    private String serviceName;
    private String serviceFlow;
    private String packageName;
    private String className;
    private String path;
@ -18,12 +18,12 @@ public class ServiceEvent {
        this.event = event;
    }
    public String getServiceName() {
        return serviceName;
    public String getServiceFlow() {
        return serviceFlow;
    }
    public void setServiceName(String serviceName) {
        this.serviceName = serviceName;
    public void setServiceFlow(String serviceFlow) {
        this.serviceFlow = serviceFlow;
    }
    public String getPackageName() {

+ 1 - 1
hos-arbiter/src/main/java/com/yihu/hos/services/ServiceEventRouter.java

@ -14,7 +14,7 @@ import javax.jms.ConnectionFactory;
 * @created Airhead 2016/8/1.
 */
@Component
public class ServiceEventRouter extends RouteBuilder {
public class ServiceFlowEventRouter extends RouteBuilder {
    @Autowired
    private ActivemqConfiguration activemqConfiguration;
    @Override

+ 12 - 12
hos-arbiter/src/main/java/com/yihu/hos/services/ServiceEventService.java

@ -2,7 +2,7 @@ package com.yihu.hos.services;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.hos.models.BrokerServer;
import com.yihu.hos.models.ServiceEvent;
import com.yihu.hos.models.ServiceFlowEvent;
import org.apache.http.Consts;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
@ -27,7 +27,7 @@ import java.util.List;
 * @created Airhead 2016/8/4.
 */
@Service("serviceEventService")
public class ServiceEventService {
public class ServiceFlowEventService {
    @Autowired
    private BrokerServerService brokerServerService;
@ -40,15 +40,15 @@ public class ServiceEventService {
        ObjectMapper objectMapper = new ObjectMapper();
        try {
            ServiceEvent serviceEvent = objectMapper.readValue(msg, ServiceEvent.class);
            ServiceFlowEvent serviceFlowEvent = objectMapper.readValue(msg, ServiceFlowEvent.class);
            List<NameValuePair> nameValuePairList = new ArrayList<>();
            nameValuePairList.add(new BasicNameValuePair("serviceName", serviceEvent.getServiceName()));
            nameValuePairList.add(new BasicNameValuePair("packageName", serviceEvent.getPackageName()));
            nameValuePairList.add(new BasicNameValuePair("className", serviceEvent.getClassName()));
            nameValuePairList.add(new BasicNameValuePair("path", serviceEvent.getPath()));
            nameValuePairList.add(new BasicNameValuePair("serviceName", serviceFlowEvent.getServiceFlow()));
            nameValuePairList.add(new BasicNameValuePair("packageName", serviceFlowEvent.getPackageName()));
            nameValuePairList.add(new BasicNameValuePair("className", serviceFlowEvent.getClassName()));
            nameValuePairList.add(new BasicNameValuePair("path", serviceFlowEvent.getPath()));
            CloseableHttpClient httpclient = HttpClients.createDefault();
            switch (serviceEvent.getEvent()) {
            switch (serviceFlowEvent.getEvent()) {
                case "processorAdded": {
                    HttpPost httpPost = new HttpPost(brokerServer.getURL() + "/esb/processor");
                    httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairList, Consts.UTF_8));
@ -86,10 +86,10 @@ public class ServiceEventService {
                                .setScheme("http")
                                .setHost(brokerServer.getHostAddress() + ":" + brokerServer.getPort())
                                .setPath("/route")
                                .setParameter("serviceName", serviceEvent.getServiceName())
                                .setParameter("packageName", serviceEvent.getPackageName())
                                .setParameter("className", serviceEvent.getClassName())
                                .setParameter("path", serviceEvent.getPath())
                                .setParameter("serviceName", serviceFlowEvent.getServiceFlow())
                                .setParameter("packageName", serviceFlowEvent.getPackageName())
                                .setParameter("className", serviceFlowEvent.getClassName())
                                .setParameter("path", serviceFlowEvent.getPath())
                                .build();
                        HttpDelete httpDelete = new HttpDelete(uri);