|
@ -1,12 +1,38 @@
|
|
|
package com.yihu.hos.arbiter.services;
|
|
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
import com.yihu.hos.arbiter.models.BrokerServer;
|
|
|
import com.yihu.hos.arbiter.models.ServiceFlow;
|
|
|
import org.apache.http.Consts;
|
|
|
import org.apache.http.NameValuePair;
|
|
|
import org.apache.http.client.entity.UrlEncodedFormEntity;
|
|
|
import org.apache.http.client.methods.CloseableHttpResponse;
|
|
|
import org.apache.http.client.methods.HttpDelete;
|
|
|
import org.apache.http.client.methods.HttpPost;
|
|
|
import org.apache.http.client.methods.HttpPut;
|
|
|
import org.apache.http.client.utils.URIBuilder;
|
|
|
import org.apache.http.impl.client.CloseableHttpClient;
|
|
|
import org.apache.http.impl.client.HttpClients;
|
|
|
import org.apache.http.message.BasicNameValuePair;
|
|
|
import org.apache.log4j.LogManager;
|
|
|
import org.apache.log4j.Logger;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
import java.net.URI;
|
|
|
import java.net.URISyntaxException;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
|
* @created Airhead 2016/8/16.
|
|
|
*/
|
|
|
@Service
|
|
|
@Service("serviceFlowService")
|
|
|
public class ServiceFlowService {
|
|
|
private static final Logger logger = LogManager.getLogger(BrokerServerService.class);
|
|
|
@Autowired
|
|
|
private BrokerServerService brokerServerService;
|
|
|
|
|
|
public void save(String serviceFlow) {
|
|
|
}
|
|
@ -18,4 +44,87 @@ public class ServiceFlowService {
|
|
|
public String put(String serviceName, String ClientInfo) {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
public void trigger(String msg) {
|
|
|
System.out.println(msg);
|
|
|
BrokerServer brokerServer = brokerServerService.get();
|
|
|
if (brokerServer == null) {
|
|
|
logger.trace("can not find a valid broker server.");
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
|
try {
|
|
|
ServiceFlow serviceFlow = objectMapper.readValue(msg, ServiceFlow.class);
|
|
|
List<NameValuePair> nameValuePairList = new ArrayList<>();
|
|
|
nameValuePairList.add(new BasicNameValuePair("serviceName", serviceFlow.getServiceFlow()));
|
|
|
nameValuePairList.add(new BasicNameValuePair("packageName", serviceFlow.getPackageName()));
|
|
|
nameValuePairList.add(new BasicNameValuePair("className", serviceFlow.getClassName()));
|
|
|
nameValuePairList.add(new BasicNameValuePair("path", serviceFlow.getPath()));
|
|
|
|
|
|
CloseableHttpClient httpclient = HttpClients.createDefault();
|
|
|
switch (serviceFlow.getEvent()) {
|
|
|
case "processorAdded": {
|
|
|
HttpPost httpPost = new HttpPost(brokerServer.getURL() + "/esb/processor");
|
|
|
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairList, Consts.UTF_8));
|
|
|
CloseableHttpResponse response = httpclient.execute(httpPost);
|
|
|
response.close();
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
case "processorDataChanged": {
|
|
|
HttpPut httpPut = new HttpPut(brokerServer.getURL() + "/esb/processor");
|
|
|
httpPut.setEntity(new UrlEncodedFormEntity(nameValuePairList, Consts.UTF_8));
|
|
|
CloseableHttpResponse response = httpclient.execute(httpPut);
|
|
|
response.close();
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
case "routeDefineAdded": {
|
|
|
HttpPost httpPost = new HttpPost(brokerServer.getURL() + "/esb/processor");
|
|
|
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairList, Consts.UTF_8));
|
|
|
CloseableHttpResponse response = httpclient.execute(httpPost);
|
|
|
response.close();
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
case "routeDefineChanged": {
|
|
|
HttpPut httpPut = new HttpPut(brokerServer.getURL() + "/esb/route");
|
|
|
httpPut.setEntity(new UrlEncodedFormEntity(nameValuePairList, Consts.UTF_8));
|
|
|
CloseableHttpResponse response = httpclient.execute(httpPut);
|
|
|
response.close();
|
|
|
break;
|
|
|
}
|
|
|
case "routeDefineDelete": {
|
|
|
try {
|
|
|
URI uri = new URIBuilder()
|
|
|
.setScheme("http")
|
|
|
.setHost(brokerServer.getHostAddress() + ":" + brokerServer.getPort())
|
|
|
.setPath("/route")
|
|
|
.setParameter("serviceName", serviceFlow.getServiceFlow())
|
|
|
.setParameter("packageName", serviceFlow.getPackageName())
|
|
|
.setParameter("className", serviceFlow.getClassName())
|
|
|
.setParameter("path", serviceFlow.getPath())
|
|
|
.build();
|
|
|
|
|
|
HttpDelete httpDelete = new HttpDelete(uri);
|
|
|
CloseableHttpResponse response = httpclient.execute(httpDelete);
|
|
|
response.close();
|
|
|
} catch (URISyntaxException e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
|
|
|
|
|
|
break;
|
|
|
}
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
|
|
|
} catch (IOException e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|