BSP 脚本调整

yun-zuoyi
castle.zang 3 years ago
parent fa91cf6804
commit b4088b888f

@ -1,29 +0,0 @@
package cn.estsh.i3plus.pojo.bsp.common;
import groovy.lang.GroovyClassLoader;
import groovy.lang.GroovyObject;
import java.util.Map;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2021/7/22 15:38
* @Modify:
**/
public class GroovyCommonUtil {
public static Map<String, Object> executeGroovy(String script, String methodName, Object... args) throws IllegalAccessException, InstantiationException {
Class scriptClass = new GroovyClassLoader().parseClass(script);
GroovyObject groovyObject = (GroovyObject) scriptClass.newInstance();
Map<String, Object> resultMap;
if (args.length > 0) {
resultMap = (Map) groovyObject.invokeMethod(methodName, args);
} else {
resultMap = (Map) groovyObject.invokeMethod(methodName, null);
}
return resultMap;
}
}

@ -1,98 +0,0 @@
package cn.estsh.i3plus.pojo.bsp.common;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.List;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2021/6/17 13:40
* @Modify:
**/
public class GsonTool {
private static Gson gson = null;
static {
gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
}
/**
* Object json
*
* @param src
* @return String
*/
public static String toJson(Object src) {
return gson.toJson(src);
}
/**
* json clsObject
*
* @param json
* @param classOfT
* @return
*/
public static <T> T fromJson(String json, Class<T> classOfT) {
return gson.fromJson(json, classOfT);
}
/**
* json rawClass<classOfT> Object
*
* @param json
* @param classOfT
* @param argClassOfT
* @return
*/
public static <T> T fromJson(String json, Class<T> classOfT, Class argClassOfT) {
Type type = new ParameterizedType4ReturnT(classOfT, new Class[]{argClassOfT});
return gson.fromJson(json, type);
}
public static class ParameterizedType4ReturnT implements ParameterizedType {
private final Class raw;
private final Type[] args;
public ParameterizedType4ReturnT(Class raw, Type[] args) {
this.raw = raw;
this.args = args != null ? args : new Type[0];
}
@Override
public Type[] getActualTypeArguments() {
return args;
}
@Override
public Type getRawType() {
return raw;
}
@Override
public Type getOwnerType() {
return null;
}
}
/**
* json clslist
*
* @param json
* @param classOfT
* @return
*/
public static <T> List<T> fromJsonList(String json, Class<T> classOfT) {
return gson.fromJson(
json,
new TypeToken<List<T>>() {
}.getType()
);
}
}

@ -1,149 +0,0 @@
//package cn.estsh.i3plus.pojo.bsp.common;
//
//import cn.estsh.i3plus.pojo.base.bean.BaseResultBean;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//
//import javax.net.ssl.*;
//import java.io.BufferedReader;
//import java.io.DataOutputStream;
//import java.io.InputStreamReader;
//import java.net.HttpURLConnection;
//import java.net.URL;
//import java.security.cert.CertificateException;
//import java.security.cert.X509Certificate;
//
///**
// * @Description :
// * @Reference :
// * @Author : Castle
// * @CreateDate : 2021/6/17 13:37
// * @Modify:
// **/
//public class HttpUtils {
// private static Logger logger = LoggerFactory.getLogger(HttpUtils.class);
//
// // trust-https start
// private static void trustAllHosts(HttpsURLConnection connection) {
// try {
// SSLContext sc = SSLContext.getInstance("TLS");
// sc.init(null, trustAllCerts, new java.security.SecureRandom());
// SSLSocketFactory newFactory = sc.getSocketFactory();
//
// connection.setSSLSocketFactory(newFactory);
// } catch (Exception e) {
// logger.error(e.getMessage(), e);
// }
// connection.setHostnameVerifier(new HostnameVerifier() {
// @Override
// public boolean verify(String hostname, SSLSession session) {
// return true;
// }
// });
// }
//
// private static final TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() {
// @Override
// public X509Certificate[] getAcceptedIssuers() {
// return new X509Certificate[]{};
// }
//
// @Override
// public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
// }
//
// @Override
// public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
// }
// }};
// // trust-https end
//
//
// /**
// * post
// *
// * @param url
// * @param timeout
// * @param requestObj
// * @return
// */
// public static ResultBean postBody(String url, int timeout, Object requestObj) {
// HttpURLConnection connection = null;
// BufferedReader bufferedReader = null;
// try {
// // connection
// URL realUrl = new URL(url);
// connection = (HttpURLConnection) realUrl.openConnection();
//
// // trust-https
// boolean useHttps = url.startsWith("https");
// if (useHttps) {
// HttpsURLConnection https = (HttpsURLConnection) connection;
// trustAllHosts(https);
// }
//
// // connection setting
// connection.setRequestMethod("POST");
// connection.setDoOutput(true);
// connection.setDoInput(true);
// connection.setUseCaches(false);
// connection.setReadTimeout(timeout * 1000);
// connection.setConnectTimeout(3 * 1000);
// connection.setRequestProperty("connection", "Keep-Alive");
// connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
// connection.setRequestProperty("Accept-Charset", "application/json;charset=UTF-8");
//
// // do connection
// connection.connect();
//
// // write requestBody
// if (requestObj != null) {
// String requestBody = GsonTool.toJson(requestObj);
//
// DataOutputStream dataOutputStream = new DataOutputStream(connection.getOutputStream());
// dataOutputStream.write(requestBody.getBytes("UTF-8"));
// dataOutputStream.flush();
// dataOutputStream.close();
// }
//
// // valid StatusCode
// int statusCode = connection.getResponseCode();
// if (statusCode != 200) {
// return ResultBean.fail("rpc remoting fail, StatusCode(" + statusCode + ") invalid. for url : " + url);
//// return new BaseResultBean().errorMsg("rpc remoting fail, StatusCode(" + statusCode + ") invalid. for url : " + url);
//// return new ReturnT<String>(ReturnT.FAIL_CODE, "rpc remoting fail, StatusCode(" + statusCode + ") invalid. for url : " + url);
// }
//
// // result
// bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
// StringBuilder result = new StringBuilder();
// String line;
// while ((line = bufferedReader.readLine()) != null) {
// result.append(line);
// }
// String resultJson = result.toString();
// // parse returnT
// try {
// return GsonTool.fromJson(resultJson, BaseResultBean.class);
// } catch (Exception e) {
// logger.error("rpc remoting (url=" + url + ") response content invalid(" + resultJson + ").", e);
// return ResultBean.fail("rpc remoting fail, StatusCode(" + statusCode + ") invalid. for url : " + url);
// }
// } catch (Exception e) {
// logger.error(e.getMessage(), e);
// return ResultBean.fail("rpc remoting fail, error message(" + e.getMessage() + ") invalid. for url : " + url);
// } finally {
// try {
// if (bufferedReader != null) {
// bufferedReader.close();
// }
// if (connection != null) {
// connection.disconnect();
// }
// } catch (Exception e2) {
// logger.error(e2.getMessage(), e2);
// }
// }
// }
//
//}

@ -1,30 +0,0 @@
package cn.estsh.i3plus.pojo.bsp.common.script.strategy;
import groovy.lang.GroovyClassLoader;
import groovy.lang.GroovyObject;
import java.util.Map;
import java.util.Set;
/**
* @Description : executeexecutegroovyexecute
* @Reference :
* @Author : Castle
* @CreateDate : 2022/1/26 15:03
* @Modify:
**/
public class GroovyScript implements Script{
@Override
public Map<String, Object> execute(String script,Map<String, Object> paramMap,String methodName) throws IllegalAccessException, InstantiationException {
Class scriptClass = new GroovyClassLoader().parseClass(script);
GroovyObject groovyObject = (GroovyObject) scriptClass.newInstance();
Set<String> keys = paramMap.keySet();
keys.forEach(key ->{
groovyObject.setProperty(key,paramMap.get(key));
});
methodName = methodName != null ? methodName : "execute";
Map<String, Object> resultMap = (Map<String, Object>)groovyObject.invokeMethod(methodName,null);
return resultMap;
}
}

@ -1,21 +0,0 @@
package cn.estsh.i3plus.pojo.bsp.common.script.strategy;
import java.util.Map;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2022/1/26 15:02
* @Modify:
**/
public interface Script {
/**
*
* @param script
* @param paramMap
* @param methodName
* @return
*/
Map<String,Object> execute(String script,Map<String, Object> paramMap,String methodName) throws IllegalAccessException, InstantiationException;
}

@ -33,6 +33,6 @@ public class RequestModel {
private Integer scriptType;
@ApiModelProperty("脚本内容")
private String scriptContent;
@ApiModelProperty("脚本执行位置")
private Integer scriptExecutor;
// @ApiModelProperty("脚本执行位置")
// private Integer scriptExecutor;
}

@ -4,7 +4,7 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
import java.util.Map;
/**
* @Description :
@ -23,8 +23,8 @@ public class ScriptTestVo {
@ApiModelProperty(value = "方法名默认为execute")
private String methodName;
@ApiModelProperty(value = "参数列表,注意入参顺序的对应")
private List<Object> arguments;
@ApiModelProperty(value = "参数列表")
private Map<String,Object> arguments;
@ApiModelProperty(value = "执行器")
private Integer targetExecutor;

Loading…
Cancel
Save